使用迷你测试和设计进行控制器测试失败



在使用Devise的Rails 3.28应用程序中,我设置了一个控制器来检查用户是否使用if user_signed_in?登录。一旦测试达到这一行,我总是得到一个undefined method 'authenticate!' for nil:NilClass错误。我想在没有用户登录的情况下测试一些代码。

我认为我需要根据此处 Devise Wiki 中指定的选项设置测试,但是,所有说明都与 rspec 有关。

特别是,我认为我需要具备以下条件才能在 minitest 中工作:

RSpec.configure do |config|
  config.include Devise::TestHelpers, :type => :controller
  config.extend ControllerMacros, :type => :controller
end

有没有人成功地设置它让 Devise 与 minitest 一起工作?

将以下内容添加到minitest_helper.rb文件中:

class MiniTest::Rails::ActionController::TestCase
  include Devise::TestHelpers
end