tutorial sign_in rails method gema ejemplos auth ruby-on-rails devise rspec-rails warden

ruby on rails - sign_in - ¿Por qué mi RSpec no carga Devise:: Test:: ControllerHelpers?



rspec rails devise (2)

Estoy usando Rails 5 y Devise 3.5.1.

Repasando un buen libro (antiguo) sobre cómo crear / probar una API, que usa la autenticación Devise. Fue escrito antes de Rails 5, así que elegí no usar la nueva versión api.

Aquí está mi prueba ...

#/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

Y aquí hay un error RSpec completamente inesperado

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.

Así que voy aquí - http://www.rubydoc.info/gems/devise/Devise/Test/ControllerHelpers

y lo intenté -> incluir Devise :: Test :: ControllerHelpers

que no ayudó porque el archivo controller_helpers.rb no está en mi proyecto

¿Qué extrañé aquí?

Gracias


En spec_helper.rb agregue:

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


Puede agregar lo siguiente a sus rails_helper :

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

Esto incluirá el Devise::Test::ControllerHelpers en todas :controller especificaciones del :controller .