ruby on rails - inglés - lanzamiento no atrapado: alcaide en las pruebas de desarrollo
traducir al español (2)
Acabo de empezar con las pruebas de Devise. No puedo entender por qué recibo este error:
Failure/Error: subject.current_user.should_not be_nil
ArgumentError:
uncaught throw :warden
Este es el código en mi especificación:
require "spec_helper"
describe Devise::PasswordsController do
include Devise::TestHelpers
before(:each) do
user = Factory(:user)
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in user
end
it "should have a current user" do
subject.current_user.should_not be_nil
end
end
¿Alguien ha solucionado este problema? Sé que hay problemas en github
pero en su caso, include Devise::TestHelpers
no estuvo presente a diferencia de mi caso.
Recibo un error en esta línea: subject.current_user.should_not be_nil
Veo que esta es una pregunta muy antigua, pero me encontré con un problema similar. Esto es lo que me ayudó.
Si está utilizando un módulo confirmable
, no olvide confirmar al usuario, de lo contrario se lanzará la excepción de Warden. El cambio apropiado a su código sería:
before(:each) do
user = Factory(:user)
user.confirmed_at = Time.zone.now
user.save
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in user
end
Más información se puede encontrar en Devise Wiki
uncaught throw :warden
sucede cuando se authenticate_user!
falla
Averigüe por qué su autenticación del usuario es un error, y habrá resuelto su problema.