在使用设计和声明性授权时,我在使功能测试工作时遇到了麻烦。我可以使用设计测试助手来签名用户,然后在控制器中填充current_user变量。但是,只要我使用post_with测试助手进行声明性授权,current_user就会变为nil。
在使用设计和声明授权时,有人能指出一个如何编写功能测试的例子吗?
由于
答案 0 :(得分:1)
我遇到了同样的问题。 你不能在设计的功能测试中使用声明性授权testhelper,例如post_with。
对于功能测试,您可以使用设计测试工具,例如sign_in和sign_out。我写了一个帮助器,它使用设计测试助手方法进行功能测试:
def test_with_user(user, &block)
begin
sign_in :user, users(user)
yield
ensure
sign_out :user
end
end
我使用以下方式使用此助手:
test_with_user(:max) do
get :new
assert_response :success
end
希望有所帮助。