我正在寻找如何为需要 2 个用户的流程进行集成,在该流程中您无法按顺序跳转。
User A does 1
User B does 2
User A does 3
User B does 4
User A does 5
...
为此,测试代码以随机顺序执行;我无法编写一系列测试,例如:test "user A does 1" do ... end
并期望它们按顺序执行
那么,应该如何针对上述情况编写集成测试呢?
require 'test_helper'
class MyIntegrationTest < ActionController::IntegrationTest
test "Test interaction between 2 users" do
sign_in 'userA@mysite.com'
assert_response :success
get '/does/1'
assert_response :success
sign_out
sign_in 'userB@mysite.com'
assert_response :success
get '/does/2'
assert_response :success
sign_out
sign_in 'userA@mysite.com'
assert_response :success
get '/does/3'
assert_response :success
sign_out
sign_in 'userB@mysite.com'
# ahhhhhhhhhhhhhhhhhhhhhhhhhhh! .....
end
请记住,Rails 5 中可能会删除控制器测试。
https://github.com/rails/rails/issues/18950#issuecomment-77924771
在 rails 问题中发现了这一点:
https://github.com/rails/rails/issues/22742