Подтвердить что ты не робот

Почему мой RSpec не загружает Devise:: Test:: ControllerHelpers?

Я использую Rails 5 и Devise 3.5.1.

Прохождение хорошей (более старой) книги о создании/тестировании API, который использует аутентификацию Devise. Он был написан до Rails 5, поэтому я решил не использовать новую версию api.

Здесь мой тест...

#/spec/controllers/api/v1/users_controller_spec.rb    

require 'rails_helper'

describe Api::V1::UsersController, :type => :controller do
    before(:each) { request.headers['Accept'] = "application/vnd.marketplace.v1" }
    describe "GET #show" do
        before(:each) do
            @user = FactoryGirl.create :user
            get :show, params: {id: @user.id}, format: :json
        end
        it "returns the information about a reporter on a hash" do
            user_response = JSON.parse(response.body, symbolize_names: true)
            expect(user_response[:email]).to eql @user.email
        end
        it { should respond_with 200 }
    end
end

И здесь совершенно неожиданная ошибка RSpec

Devise::MissingWarden:
       Devise could not find the `Warden::Proxy` instance on your request environment.
       Make sure that your application is loading Devise and Warden as expected and that the `Warden::Manager` middleware is present in your middleware stack.
       If you are seeing this on one of your tests, ensure that your tests are either executing the Rails middleware stack or that your tests are using the `Devise::Test::ControllerHelpers` module to inject the `request.env['warden']` object for you.

Итак, я здесь - http://www.rubydoc.info/gems/devise/Devise/Test/ControllerHelpers

и попробовал это → включить Devise:: Test:: ControllerHelpers

что не помогло, потому что файл controller_helpers.rb нигде в моем проекте

Что я здесь пропустил?

Спасибо

4b9b3361

Ответ 1

Вы можете добавить следующее к своему rails_helper:

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

Это будет включать модуль Devise::Test::ControllerHelpers во всех спецификациях :controller.

Ответ 2

В spec_helper.rb добавить:

config.include Devise::Test::ControllerHelpers, :type => :controller