Как получить ответ от Rack на шаге Cucumber?

У меня есть шаг Cucumber для моего приложения Rails:

Then /^I should be redirected to the sign in page$/ do
  assert_equal 302, @response.status
end

Но этот объект @response — это объект, возвращаемый моим Controller, и именно промежуточное ПО Rack устанавливает состояние, которое я ожидаю. Как я могу получить ответ, возвращенный из самого внешнего промежуточного программного обеспечения, а не ответ, возвращенный контроллером?


person James A. Rosen    schedule 08.07.2009    source источник


Ответы (2)


Из вашего определения шага кажется, что вы должны проверить, находитесь ли вы на странице входа, а не получили ли вы 302. Но чтобы идти своим путем, вот шаг:

Then /^I should be redirected to the sign in page$/ do |url|
  assert @integration_session.status == 302, "Expected status to be 302, got #{@integration_session.status}"
end
person Gavin    schedule 08.11.2011

Попробуйте использовать только response без '@'. Это даст вам объект ответа, который видит WebRat.

person BaroqueBobcat    schedule 09.07.2009