如何使用 RSpecs valid_session? [英] How to use RSpecs valid_session?

查看:38
本文介绍了如何使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆