Why is my RSpec not loading Devise::Test::ControllerHelpers?

前端 未结 3 1448
失恋的感觉
失恋的感觉 2020-12-14 00:07

I\'m using Rails 5, and Devise 3.5.1.

Going through a nice (older) book about creating/testing an API, which uses Devise authentication. It was written before Rails

相关标签:
3条回答
  • 2020-12-14 00:28

    MiniTest, Rails 4

    This works for vanilla Rails 4 MiniTest

    test\controllers\users_controller_test.rb
    require 'test_helper'
    
    class UsersControllerTest < ActionController::TestCase
      include Warden::Test::Helpers
      include Devise::Test::ControllerHelpers
    
      setup do
        # https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara
        # @user = users(:admin)
        # sign_in @user
      end
    
      teardown do
        Warden.test_reset!
      end
    
      test "login as admin" do
        @user = users :admin
        sign_in @user
        get :dashboard
        assert_redirected_to admin_dashboard_path
      end
    
    end
    
    0 讨论(0)
  • 2020-12-14 00:38

    In the spec_helper.rb add:

    config.include Devise::Test::ControllerHelpers, :type => :controller
    
    0 讨论(0)
  • 2020-12-14 00:49

    You could add the following to your rails_helper:

    RSpec.configure do |config|
      config.include Devise::Test::ControllerHelpers, type: :controller
    end
    

    This will include Devise::Test::ControllerHelpers module in all :controller specs.

    0 讨论(0)
提交回复
热议问题