【问题标题】:Testing devise with shoulda使用 shoulda 测试设备
【发布时间】:2011-02-19 19:49:41
【问题描述】:

我在使用 shoulda 测试设计时遇到了一些困难:

2) Error:
test: handle :index logged as admin should redirect to Daily page.
(Admin::DailyClosesControllerTest):
NoMethodError: undefined method `env' for nil:NilClass
devise (1.0.6) [v] lib/devise/test_helpers.rb:52:in
`setup_controller_for_warden'

我的 test_helper 中有这个:

include Devise::TestHelpers

想法? 提前致谢,

克里斯蒂

【问题讨论】:

    标签: ruby-on-rails functional-testing shoulda devise


    【解决方案1】:

    include Devise::TestHelpers 不在 test_helper.rb 文件中,而是在各个测试类的范围内。就像他们的自述文件显示的那样:

    class ActionController::TestCase
      include Devise::TestHelpers
    end
    

    【讨论】:

      【解决方案2】:

      我不确定 rspeicher 是否完全正确,但是:

      class ActionController::TestCase
        include Devise::TestHelpers
      end
      

      在 test_helper.rb 的最底部(是的,在class ActiveSupport::TestCaseEND 之后)应该可以工作。到目前为止,它已经用于我的 3 或 4 个项目,包括我今天正在做的一个。

      然后,如果您在测试中使用固定装置,则可以使用 sign_in users(:one)。除非应该搞砸了?

      【讨论】:

      • 不一样。他只是将“include Devise::TestHelpers”放在他的 test_helper.rb 文件的基本范围中,而不是在 TestCase 类中。
      • 这正是自述文件所说的。
      • +1 表示“在 ActiveSupport::TestCase 类的 END 之后是”
      猜你喜欢
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 2014-04-05
      相关资源
      最近更新 更多