还有哪些方法可以测试Devise'未登录'与黄瓜?

时间:2011-03-11 04:07:07

标签: ruby-on-rails-3 cucumber devise

Devise的Wiki页面建议使用以下内容测试用户是否未登录:

   Given /^I am not authenticated$/ do
     visit('/users/sign_out') # ensure that at least
   end

哪个有效,但感觉不对,因为它只测试某个路径是否可访问而不是真正测试用户未登录。

是否还有其他更好的方法可以用来测试用户是否使用Devise登录?

1 个答案:

答案 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