Ruby on rails 如何使用RSpecs有效会话?
我在RSpec中找不到有效_会话的示例,现在我所有的框架测试在添加了授权后都被破坏了 通过MichaelHartl的Rails教程,我使用了上面描述的身份验证,除了我要求所有页面都要登录,并对登录等使用“先跳过后过滤” 我已经添加了一个用户装置,我已经验证该装置是否已加载:Ruby on rails 如何使用RSpecs有效会话?,ruby-on-rails,rspec,railstutorial.org,Ruby On Rails,Rspec,Railstutorial.org,我在RSpec中找不到有效_会话的示例,现在我所有的框架测试在添加了授权后都被破坏了 通过MichaelHartl的Rails教程,我使用了上面描述的身份验证,除了我要求所有页面都要登录,并对登录等使用“先跳过后过滤” 我已经添加了一个用户装置,我已经验证该装置是否已加载: userexample: id: 1 name: Example Name email: examplename@example.com password_digest: $2a$10$NuWL8f2X0bX
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
我是否按预期使用了有效的_会话?在会话中提供一个memory_令牌,即使不使用sign_-in显式地登录用户,也能起作用吗?这可以用其他方法解决吗?这应该对你有用
def valid_session
controller.stub!(:signed_in?).and_return(true)
end
…基于对我有用的类似东西:D
def valid_session
controller.stub!(:authorize).and_return(User)
end
使用Rails4这对我不起作用,但我找到了一个sol'n,如下所示: