我的Rails应用程序有一个Cucumber步骤:
Then /^I should be redirected to the sign in page$/ do
assert_equal 302, @response.status
end
但是@response
对象是我的Controller
返回的对象,它是Rack中间件,将状态设置为我期望的状态。如何从最外层中间件而不是从控制器返回的中间件返回响应?
答案 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看到的响应对象。