加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用RSpecs valid_session?

发布时间:2020-12-16 20:57:32 所属栏目:百科 来源:网络整理
导读:我在RSpec中找到valid_session的例子时遇到了麻烦,现在所有的脚手架测试都在添加授权后被破坏了. 通过Michael Hartl的Rails教程,我正在使用here所述的身份验证,除了我要求所有页面登录并使用’skip_before_filter’进行登录等. 我添加了一个用户夹具,我已验
我在RSpec中找到valid_session的例子时遇到了麻烦,现在所有的脚手架测试都在添加授权后被破坏了.

通过Michael Hartl的Rails教程,我正在使用here所述的身份验证,除了我要求所有页面登录并使用’skip_before_filter’进行登录等.

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

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?提供一个带有会话的remember_token甚至可以在没有使用sign_in明确登录用户的情况下工作吗?这可以通过其他方式解决吗?

解决方法

这对你有用……
def valid_session
  controller.stub!(:signed_in?).and_return(true)
end

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读