黄瓜是_admin?测试
我不知道把这篇文章放在哪里,但这个主题更类似于 我的问题。
我有陈腐的登录系统,如下所示:
应用程序控制器: 包括SessionHelper
私有
helper_method :current_user
def current_user @current_user ||= User.find(session[:user_id]) if session[:user_id] 结尾
会话助手: def is_admin? @current_user && @当前用户.id == 1 结束
features/support/env.rb: 世界(SessionsHelper)
所以,如果我测试
is_admin?.should be_true
它返回:
预期 nil 为 true (RSpec::Expectations::ExpectationNotMetError) ./features/step_definitions/users/add_user.rb:23:in /^我应该 登录$/' features/users/add_user.feature:13:in
我应该登录,
但我登录了!为什么?测试认证系统的方法是什么 划痕?
I don't know where to put this post, but theme of this more similar to
my issue.
I have trite signin system, like this:
ApplicationController:
include SessionsHelper
private
helper_method :current_user
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
SessionsHelper:
def is_admin?
@current_user && @current_user.id == 1
endfeatures/support/env.rb:
World(SessionsHelper)
So, if I test
is_admin?.should be_true
it returns:
expected nil to be true (RSpec::Expectations::ExpectationNotMetError)
./features/step_definitions/users/add_user.rb:23:in /^I should
And I should signin'
signin$/'
features/users/add_user.feature:13:in
But I signed in! Why? What's the way to test authentication system from
scratch?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
但我可以告诉你,你的问题是一个范围问题。你的is_admin?
方法
添加到黄瓜世界的用户无法访问您的
应用
控制器的@current_user变量。
But I can tell you that your problem is a scope issue. Your is_admin?
method
that is added to cucumber's world does not have access to your
application
controller's @current_user variable.