Подтвердить что ты не робот

Настройка HTTP-заголовков RSpec 2.4/Rails 3

Я начинаю работу с 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

Какой-нибудь ключ к решению этой проблемы?

4b9b3361

Ответ 1

Попробуйте следующее:

request.env['HTTP_HOST'] = 'es.mysite.local'
get 'index'

Ответ 2

Предыдущий ответ правильный, и в общем случае имя заголовка должно быть во всех кешках, с префиксом HTTP_ и разделяться символами подчеркивания. Например, заголовок "If-Modified-Since" может быть установлен с помощью:

request.env['HTTP_IF_MODIFIED_SINCE'] = Time.now.httpdate

Ответ 3

Настройка 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