如何使用RSpecs valid_session?

我在RSpec中找到valid_session的例子时遇到了麻烦,现在所有的脚手架测试在添加授权后都被破坏了。

通过Michael Hartl的Rails教程,我正在使用此处描述的身份validation,除了我要求所有页面的登录并使用’skip_before_filter’进行登录等。

我添加了一个用户夹具,我已validation它已加载:

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 

会话助手的代码

 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是否可以正常工作? 这可以通过其他方式解决吗?

这对你有用……

 def valid_session controller.stub!(:signed_in?).and_return(true) end 

……基于类似的东西对我有用:D

 def valid_session controller.stub!(:authorize).and_return(User) end