【问题标题】:Explanation on Rspec + Devise::TestHelpers typeRspec + Devise::TestHelpers 类型说明
【发布时间】:2015-08-11 15:34:25
【问题描述】:

我使用rspec-rails 测试我的应用程序并使用devise 作为我的身份验证解决方案。

作为我们中的许多人,我最终遇到了常见错误:undefined method authenticate' for nil:NilClass,我按照README 中的建议添加了这一行,部分解决了这个错误:

config.include Devise::TestHelpers, type: :controller

控制器的测试错误消失了,但我的视图测试仍然存在。我终于通过添加完全解决了它:

config.include Devise::TestHelpers, type: :view

但我不确定这是否是正确的做法,因为我以前从未在任何地方见过它。

另外,我们可以为config.include Devise::TestHelpers, type: :all 等每种类型都包含它吗?

感谢您的澄清

【问题讨论】:

    标签: ruby-on-rails unit-testing rspec devise


    【解决方案1】:

    您可以通过不指定 type 在所有示例中包含模块。

    config.include Devise::TestHelpers
    

    如果您的视图使用 Devise 的助手,例如 current_useruser_signed_in?,在他们的规范中包括 TestHelpers 是合理的。尽管在架构上,您可能需要考虑在控制器中分配 @user = current_user 之类的内容,以便将视图与身份验证分离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多