Pregunta

Me estaba divirtiendo muchísimo descubriendo cómo iniciar y cerrar sesión utilizando objetos de respuesta de Rails.Los blogs estándar estaban bien, pero finalmente lo diagnosticé y quería registrarlo aquí.

app.get '/'
assert_response :success
app.get '/auth_only_url'
assert_response 302
user = User.find(:user_to_login)
app.post '/signin_url', 
              :user_email => user.email, 
              :user_password => '<password in clear>'
assert_response 302
app.follow_redirect!
assert_response :success
app.get '/auth_only_url'
assert_response :success

Tenga en cuenta que lo anterior implica que redirige después de una solicitud de autenticación fallida y también que redirige después de iniciar sesión.

Para asegurarse de cargar los dispositivos en su base de datos de entorno de prueba (lo que normalmente ocurre durante la prueba de rake), asegúrese de ejecutar lo siguiente:

 rake db:fixtures:load RAILS_ENV=test

(De Patrick Richie) La URL predeterminada parecerá ser 'www.example.com', ya que este host predeterminado como establecido en ActionController :: Integration :: Session

ActionController::Integration::Session.new.host=> "www.example.com"

Está configurado en actionpack/lib/action_controller/integration.rb#75

Para cambiarlo en la prueba de integración, haga lo siguiente:

session = open_session do |s|  s.host = 'my-example-host.com' end
¿Fue útil?

Solución

'www.example.com' es el host predeterminado según lo establecido en ActionController::Integration::Session

>> ActionController::Integration::Session.new.host
=> "www.example.com"

Está configurado en actionpack/lib/action_controller/integration.rb#75

Debería poder cambiarlo en su prueba de integración haciendo lo siguiente:

session = open_session do |s|
  s.host = 'my-example-host.com'
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top