如何在黄瓜步骤中从Rack返回响应?

时间:2009-07-08 17:27:17

标签: ruby-on-rails ruby testing cucumber rack

我的Rails应用程序有一个Cucumber步骤:

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

但是@response对象是我的Controller返回的对象,它是Rack中间件,将状态设置为我期望的状态。如何从最外层中间件而不是从控制器返回的中间件返回响应?

2 个答案:

答案 0 :(得分:0)

从你的步骤定义来看,听起来你应该测试你是否在登录页面,而不是你是否有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

答案 1 :(得分:-1)

尝试使用response而不使用'@'。它将为您提供WebRat看到的响应对象。