Devise的Wiki页面建议使用以下内容测试用户是否未登录:
Given /^I am not authenticated$/ do
visit('/users/sign_out') # ensure that at least
end
哪个有效,但感觉不对,因为它只测试某个路径是否可访问而不是真正测试用户未登录。
是否还有其他更好的方法可以用来测试用户是否使用Devise登录?
答案 0 :(得分:1)
Given语句在执行测试场景之前设置了一个已知状态,请参阅GWT。在这种情况下,它会在运行场景之前签署用户。
您可以使用以下方案确认资源确实受到身份验证的保护:
Scenario: Anonymous denied access
Given I am not authenticated
When I go to protected_resource
Then I should see "You need to sign in or sign up before continuing"
需要在features / support / paths.rb
中定义protected_resource