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

问题描述 投票:0回答:2

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


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

    assert_redirected_to users_path
  end

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

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

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

有人更新了这种新格式的测试吗?

ruby-on-rails minitest hotwire-rails ruby-on-rails-7
2个回答
2
投票

事实证明这很简单......这就是你要做的

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

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

assert_response :success

0
投票

这是另一种方法,将 minitest 与

rails-controller-testing
gem 一起使用:

get :index, params: { user: valid_params }, format: :turbo_stream

与上面的答案一样,最主要的是

format:
位于
params
哈希之外。

© www.soinside.com 2019 - 2024. All rights reserved.