Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何以用户\控制器\规范中的用户身份登录?_Ruby_Ruby On Rails 3_Testing_Login_Specifications - Fatal编程技术网

Ruby 如何以用户\控制器\规范中的用户身份登录?

Ruby 如何以用户\控制器\规范中的用户身份登录?,ruby,ruby-on-rails-3,testing,login,specifications,Ruby,Ruby On Rails 3,Testing,Login,Specifications,除非是管理员,否则不允许查看用户页面。因此,如果用户未登录,则无法离开主页。在user_controller_规范中,我们有几个关于编辑个人信息或密码的测试。但是测试永远不会通过,因为我们在spec类中创建的用户没有登录。是否有办法在用户\u控制器\u规范中登录用户?如果您使用Desive进行身份验证,它提供了一种帮助方法:登录 所以你可以这样做: it "should do something" do sign_in(user) # user is an object of your Us

除非是管理员,否则不允许查看用户页面。因此,如果用户未登录,则无法离开主页。在user_controller_规范中,我们有几个关于编辑个人信息或密码的测试。但是测试永远不会通过,因为我们在spec类中创建的用户没有登录。是否有办法在用户\u控制器\u规范中登录用户?

如果您使用Desive进行身份验证,它提供了一种帮助方法:
登录

所以你可以这样做:

it "should do something" do
  sign_in(user) # user is an object of your User model
  #Continue testing
end

有关更多信息,请参阅。

我正在使用会话。我不知道如何使用这个装置。我可以不用它吗?您可以使用
session[:key]
在规范内设置会话。您可以编写自己的助手方法
登录(用户)
,该方法可以设置用户要登录的会话。当您希望用户登录时,可以在规范中使用此选项。