Как проверить заголовки с помощью rspec и rack-test в Sinatra - PullRequest
8 голосов
/ 27 января 2012

Итак, у меня есть приложение Sinatra, которое получает XML через HTTP POST от другого сервиса.Я хочу проверить это на месте.У меня есть тестовый XML-файл, который я отправляю в конечную точку.Это хорошо.Я также установил некоторые заголовки следующим образом:

post '/', xml, 'HTTP_X_MY_AWESOME_HEADER' => "It's value"

, где xml - это точная копия обычного XML, отправляемого моей конечной точке.Но заголовок, который я передаю как параметр, никогда не отображается в выходных данных.

Я что-то здесь не так делаю?Здесь много сообщений об этом, но все они устарели.

Я использую Rspec 2.8, Sinatra 1.3.2, Ruby 1.9.3-p0, Rack :: Test 0.6.1.

ОБНОВЛЕНИЕ 2012-01-28 11: 37 : Очевидно, я не думал, когда задавал этот вопрос.Отправка заголовков с запросом не означает, что я получу их обратно в ответе.

Таким образом, теперь возникает вопрос: как проверить заголовки запросов, не отправляя их обратно с ответом?

1 Ответ

4 голосов
/ 27 января 2012

Вы должны быть в состоянии проверить last_request следующим образом:

last_request.env["HTTP_X_MY_AWESOME_HEADER"]

с использованием RSpec и приведенного выше примера, вы можете проверить с помощью:

last_request.env["HTTP_X_MY_AWESOME_HEADER"].should == "It's value"

И, надеюсь, вы получите зеленый свет:)

Больше информации здесь: http://www.sinatrarb.com/testing.html#asserting_expectations_about_the_response

НТН

...