Я написал функциональный тест, который изменяет некоторые переменные среды объекта запроса для имитации входа пользователя в систему.
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
Функциональный тест работает нормально.
Теперь я хочусделать нечто подобное в рамках интеграционного тестирования.Вот что я попробовал:
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
Я получаю сообщение об ошибке, что @request
равно нулю.Я подозреваю, что это как-то связано с объектом сеанса, но я не уверен, как заставить его работать.