控制器测试在一起运行时失败,在单独运行时通过。怎么会这样?

时间:2013-02-24 01:53:54

标签: ruby-on-rails ruby rspec devise

我有一些测试要求用户登录。当我自己运行控制器测试时,它会通过,一切都是绿色的。如果我运行rspec spec/controllers我的一些测试失败了,例如:

Failure/Error: get :my_modal, :format => :js
 NoMethodError:
   undefined method `authenticate!' for nil:NilClass

有关如何解决此问题的任何提示?

1 个答案:

答案 0 :(得分:0)

我遇到这样的错误。因此,当我告诉您我的故事时,您不会与我们分享更多详细信息,希望您之后可以更轻松地找到您的错误。

在我的App 2中,类可以登录。“用户”和“主题”。我尝试进行身份验证,因此用户只能访问与用户相关的网站,主题只能访问应用中与主题相关的部分。

我遇到的第一个错误之一就是你的错误。但我修好了它,并试着向你解释我是怎么做的。如果用户已登录,我的应用程序不知道与主题相关的身份验证方法。反之亦然,如果我的应用程序中签署了主题,则不知道用户相关的身份验证方法(我要求User.user_id或Topic.be_topic?为真)

修复此问题的线索是:我创建了一个名为“user_signed_in”的方法,并通过IF方法运行验证。

IF user_signed_in
  user.user_id > 0
ELSE
  topic.be_topic == true
END

希望能帮到你。我是Rails的新手,请原谅我缺乏更深层次的知识。