如何根据夹具对象对导轨系统测试进行参数化

时间:2019-11-16 13:42:31

标签: ruby-on-rails testing automated-tests

在Rails(5.2)项目中,我想根据测试夹具中的不同对象对系统测试(Capybara)进行参数化。 我有:

class SomethingWithUsers < ApplicationSystemTestCase
  setup do
    @user1 = users(:test_user1)
    @user2 = users(:test_user2)
  end
  test "some_test" do
    login @user1
    do_stuff
    assert other_stuff
   end
end

,我有一个users.yml装置。

因此,现在我不想参数化some_test

,而不是为@ user2添加第二个测试。

我尝试过:

  [@user1, @user2].each do |user|
    test "some_test" + user.name
      login user
      do_stuff
      assert other_stuff
    end
  end

user为零。因此,显然我无法以这种方式访问​​这些var。

[users(:test_user1), users(:test_user2)].each do |user|

也不起作用。所以我没主意了。

1 个答案:

答案 0 :(得分:0)

我是这样做的:

  [:test_user1, :test_user2].each do |u|
    test "some_test" + u.to_s
      user = users(u)
      login user
      do_stuff
      assert other_stuff
    end
  end

但是我觉得不太好。因此,仍然欢迎其他解决方案。