Ответ 1
Попробуйте следующее:
request.env['HTTP_HOST'] = 'es.mysite.local'
get 'index'
Я начинаю работу с RSpec. У меня есть новое приложение rails 3, которое использует HTTP_ACCEPT_HEADER или двухдонный субдомен запроса для установки языка приложения и перенаправления соответственно. Я успешно тестирую свой код перенаправления с помощью Cucumber.
Теперь я хочу написать свои спецификации контроллера, и мне нужно установить поддомен запроса до моего теста.
В моих шагах огурца я могу указать:
header 'HTTP_HOST', 'es.mysite.local'
visit '/'
Но когда я пытаюсь сделать это в спецификационном файле
header 'HTTP_HOST', 'es.mysite.local'
get 'index'
Я получаю эту ошибку:
Failure/Error: header 'HTTP_HOST', "es.mysite.local"
LoadError:
no such file to load -- action_controller/integration
Какой-нибудь ключ к решению этой проблемы?
Попробуйте следующее:
request.env['HTTP_HOST'] = 'es.mysite.local'
get 'index'
Предыдущий ответ правильный, и в общем случае имя заголовка должно быть во всех кешках, с префиксом HTTP_ и разделяться символами подчеркивания. Например, заголовок "If-Modified-Since" может быть установлен с помощью:
request.env['HTTP_IF_MODIFIED_SINCE'] = Time.now.httpdate
Настройка HTTP-заголовка для каждого запроса в rspec также возможна. Добавьте в свой spec_helper внутри блока RSpec.configure do |config|
:
config.before(:each) do |x|
x.request.env['HTTP_ACCEPT_LANGUAGE'] = 'de-CH,de;q=0.8,en;q=0.6'
end