Ruby on rails 如何使用RSpecs有效会话?

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

我在RSpec中找不到有效_会话的示例,现在我所有的框架测试在添加了授权后都被破坏了

通过MichaelHartl的Rails教程,我使用了上面描述的身份验证,除了我要求所有页面都要登录,并对登录等使用“先跳过后过滤”

我已经添加了一个用户装置,我已经验证该装置是否已加载:

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,如下所示: