0

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

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

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

4

2 回答 2

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
于 2011-11-08T02:01:44.367 回答
-1

尝试response不使用“@”。它会给你 WebRat 看到的响应对象。

于 2009-07-09T23:07:52.107 回答