2011-10-23 6 views
7

Me gustaría que todas las pruebas de mi unidad usen www.test.host en lugar del test.host predeterminado.Comprobación de los rieles servidor de solicitud predeterminado

Intenté configurar ENV['HTTP_HOST'] en config/environments/test.rb, pero eso no lo consiguió.

Mi propósito es evitar una redirección en mi prueba del controlador, la salida de inspeccionar el objeto response en mi prueba es:

#<ActionController::TestResponse:0x000001059ed378, ..., @header={"Location"=>"http://www.test.host", ... , @status=301, @body=["<html><body>You are being <a href=\"http://www.test.host\">redirected</a>.</body></html>"], ... , "REQUEST_METHOD"=>"GET", "SERVER_NAME"=>"example.org", "SERVER_PORT"=>"80",... , "HTTP_HOST"=>"test.host", "REMOTE_ADDR"=>"0.0.0.0" ...>> 

Si se hace una diferencia, estoy usando Rails3 y RSPEC2

Respuesta

11

Lo haces estableciendo request.host en la prueba. Puede hacerlo globalmente agregando esto a su test_helper.rb (en Rails 3.1 de todos modos, no estoy seguro acerca de las versiones anteriores, pero creo que es similar):

class ActionController::TestCase 
    setup do 
    request.host = "www.test.host" 
    end 
end 
Cuestiones relacionadas