如何转换 minitest 创建测试以适应 turbo_stream?

Posted

技术标签:

【中文标题】如何转换 minitest 创建测试以适应 turbo_stream?【英文标题】:How to convert minitest create test to accommodate turbo_stream? 【发布时间】:2021-11-29 19:46:14 【问题描述】:

在 minitest 中,在 Hotwire 之前,创建测试可能如下所示:


  test "should create user" do
    assert_difference('User.count') do
      post users_url, params:  user: valid_params 
    end

    assert_redirected_to users_path
  end

将 create controller 操作更改为 respond_to :turbo_stream 后,上述测试将不再正确执行。我试过简单地将 format: :turbo_stream 作为参数哈希的一部分传递......但是,这也不起作用。

post users_url, params:  user: valid_params, format: 'turbo_stream' 

必须有 Rails 7 的测试方法。可能 Minitest 尚未针对这些新功能进行更新。

有人针对这种新格式更新了他们的测试吗?

【问题讨论】:

【参考方案1】:

原来这很容易......这就是你的做法

post users_url(format: :turbo_stream), params:  user: valid_params 

然后,而不是测试重定向使用:

assert_response :success

【讨论】:

以上是关于如何转换 minitest 创建测试以适应 turbo_stream?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Minitest 测试没有并行运行?

Minitest:调用#assert_current_path时出现Capybara错误?

带有 jruby rake 测试任务的 MiniTest falis

使用 CircleCI 和 Minitest 进行前端测试:测试等待页面加载的时间不够长

MiniTest微信小程序云测试平台内测用户招募第一期

@controller在特定情况下的minitest是nil错误