me han escrito una prueba funcional que cambia algunas de las variables de entorno del objeto solicitud para simular un usuario haya iniciado sesión.cambiar las variables de entorno en la solicitud rieles pruebas de integración
require 'test_helper'
class BeesControllerTest < ActionController::TestCase
# See that the index page gets called correctly.
def test_get_index
@request.env['HTTPS'] = "on"
@request.env['SERVER_NAME'] = "sandbox.example.com"
@request.env['REMOTE_USER'] = "joeuser" # Authn/Authz done via REMOTE_USER
get :index
assert_response :success
assert_not_nil(assigns(:bees))
assert_select "title", "Bees and Honey"
end
end
La prueba funcional funciona bien.
Ahora quiero hacer algo similar como parte de las pruebas de integración. Esto es lo que he intentado:
require 'test_helper'
class CreateBeeTest < ActionController::IntegrationTest
fixtures :bees
def test_create
@request.env['HTTPS'] = "on"
@request.env['SERVER_NAME'] = "sandbox.example.com"
@request.env['REMOTE_USER'] = "joeuser" # Authn/Authz done via REMOTE_USER
https?
get "/"
assert_response :success
[... more ...]
end
end
consigo quejaba un error que @request
es nula. Sospecho que esto tiene algo que ver con el objeto de la sesión, pero no estoy seguro de cómo hacerlo funcionar.
qué línea lanza el error? – kikito
La línea '@ request.env ['HTTPS'] =" on "' se queja de que no se puede aplicar el método 'env' a un valor nulo. – rlandster
Aquí hay un parche de tres años enviado a Rails que aborda este problema: http://dev.rubyonrails.org/ticket/8209 – rlandster