我一直在关注Rails教程,并且了解Rspec的assigns
方法。
这是它在集成测试中的使用方式:
class SomeTest < ActionDispatch::IntegrationTest
test "simplified test" do
get '/some/path'
#some assertions
get '/other/path'
assert_equal 'changed', assigns(:some_variable)
end
end
分配者似乎正在访问上一个呼叫的控制器/视图。
是这样吗? assigns
如何到达实例变量some_variable
?
似乎暗示可以从assigns
访问的集成测试中保留了某些状态。
答案 0 :(得分:0)
事实证明,Rails对集成测试的处理与功能测试非常相似,因此documentation中描述的实例变量在后者中适用。在集成测试中,这些变量往往会被覆盖,因此您将在调用之前访问状态。
这意味着您可以在集成测试中访问:
assings
仅包装对@controller.view_assigns
的访问,其中保存了所有可用于视图的实例变量。