Tor*_*ein 5 rspec ruby-on-rails railstutorial.org
我在RSpec中找到valid_session的例子时遇到了麻烦,现在所有的脚手架测试都在添加授权后被破坏了.
通过Michael Hartl的Rails教程,我正在使用此处描述的身份验证,除了我要求所有页面都登录并使用'skip_before_filter'进行登录等.
我添加了一个用户夹具,我已验证它已加载:
userexample:
id: 1
name: Example Name
email: examplename@example.com
password_digest: $2a$10$NuWL8f2X0bXaCof3/caiiOwlF2rago7hH10JECmw1p75kEpf0mkie
remember_token: YXjPrFfsK8SFQOQDEa90ow
Run Code Online (Sandbox Code Playgroud)
然后在控制器规范中
def valid_session
{ remember_token: "YXjPrFfsK8SFQOQDEa90ow" }
end
Run Code Online (Sandbox Code Playgroud)
会话助手的代码
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
Run Code Online (Sandbox Code Playgroud)
我是否按预期使用valid_session?提供一个带有会话的remember_token甚至可以在没有使用sign_in明确登录用户的情况下工作吗?这可以通过其他方式解决吗?
这应该对你有用......
def valid_session
controller.stub!(:signed_in?).and_return(true)
end
Run Code Online (Sandbox Code Playgroud)
...基于对我有用的类似内容:D
def valid_session
controller.stub!(:authorize).and_return(User)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2795 次 |
| 最近记录: |