如何使用 RSpecs valid_session? [英] How to use RSpecs valid_session?
问题描述
我在 RSpec 中找不到 valid_session 的例子,现在我所有的脚手架测试在添加授权后都被破坏了.
I'm having trouble finding examples of valid_session in RSpec, and now all my scaffolded tests are broken after having added authorization.
通过 Michael Hartl 的 Rails 教程,我正在使用描述的身份验证 在这里,除了我要求登录所有页面并使用skip_before_filter"进行登录等.
Going through Michael Hartl's Rails Tutorial, I'm using the authentication which is described here, except I'm requiring login for all pages and use 'skip_before_filter' for signin etc.
我添加了一个用户设备,我已经验证它已加载:
I've added a user fixture, which I've verified gets loaded:
userexample:
id: 1
name: Example Name
email: examplename@example.com
password_digest: $2a$10$NuWL8f2X0bXaCof3/caiiOwlF2rago7hH10JECmw1p75kEpf0mkie
remember_token: YXjPrFfsK8SFQOQDEa90ow
然后在控制器规范中
def valid_session
{ remember_token: "YXjPrFfsK8SFQOQDEa90ow" }
end
Session Helper的代码
The code of the Session Helper
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def signed_in?
return !current_user.nil?
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
我是否按预期使用了 valid_session?在没有使用 sign_in 显式登录用户的情况下,为会话提供 remember_token 是否会起作用?可以通过其他方式解决吗?
Am I using valid_session as intended? Will supplying a remember_token with the session even work without explicitly signing in the user with sign_in? Could this be solved in some other way?
推荐答案
这应该对你有用...
def valid_session
controller.stub!(:signed_in?).and_return(true)
end
...基于对我有用的类似内容:D
...based on something similar that worked for me :D
def valid_session
controller.stub!(:authorize).and_return(User)
end
这篇关于如何使用 RSpecs valid_session?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!