RSpec POST меняет URL - PullRequest
       2

RSpec POST меняет URL

1 голос
/ 06 декабря 2011

Рельсы 3, RSpec 2:

В моем тесте rspec для контроллера я использую post и передаю некоторые параметры:

it "returns a job id" do
  post :new, { :a => 'b'}
  response.status.should == 200
end

Это отлично работает и в контроллере params[:a] is 'b'

Однако request.url на стороне контроллера равно http://localhost/controller?a=b

Я не хочу, чтобы параметры были указаны в URL-адресе, поскольку в реальном сценарии (вне тестирования) URL-адрес является частью сигнатуры безопасности.

У меня вопрос, почему пост rspec добавляет параметры к URL, а не ведет себя так же, как POST в браузере (или CURL)?

Ответы [ 2 ]

0 голосов
/ 18 июля 2012

Я знаю, что это немного устарело, но мне странно, что вы используете post для: new action.Обычно: new показывает форму, поэтому у вас будет «get: new», и в тесте create вы будете использовать post, «post: create, params = {blah: blah}».

Проверьтемаршруты, чтобы увидеть, если ваше: новое действие опубликовано или получено.

0 голосов
/ 13 декабря 2011

Я еще не нашел ответа на этот вопрос, но вот как мне удалось решить эту проблему, чтобы мои модульные тесты работали: я выполняю простую обходную проверку сигнатур при запуске модульных тестов.Вот код:

def check_signature
  return if request.host == 'test.host'

  # check signature
  # ...
end
...