如何在Rails 3中进行集成测试?
我尝试使用 RailsGuides 中的代码以及我在 Google 上找到的其他一些代码,但没有任何效果。
如何使用 Test::Unit 在 Rails 3 中进行简单的集成测试?如何使会话在 http 请求中持续存在?
以下代码失败,因为预期响应为 <:success>,但实际响应为 <302>
。我认为这是因为在post请求后会话丢失了。
class UserFlowsTest < ActionDispatch::IntegrationTest
fixtures :all
test "client can get client dashboard" do
post '/login', :login=> users(:client).login, :password => 'thepassword'
get '/dash'
assert_response :success
end
end
在 Rails 3.07 中工作。
谢谢。
I tried using the code in the RailsGuides and some other code I found on Google, but nothing is working.
How do you do a simple integration test in Rails 3 using Test::Unit? How do you make the session persist across http requests?
The following code fails because Expected response to be a <:success>, but was <302>
. I think it is because the session is lost after the post request.
class UserFlowsTest < ActionDispatch::IntegrationTest
fixtures :all
test "client can get client dashboard" do
post '/login', :login=> users(:client).login, :password => 'thepassword'
get '/dash'
assert_response :success
end
end
Working in Rails 3.07.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明上面的代码是正确的。
我更改了部分用户验证代码,导致在我不希望的情况下重定向到登录表单。这就是响应为 302(重定向)的原因。
It turns out the above code is correct.
I had changed part of the user validation code, causing a redirect to the login form when I did not intend. That's why the response was 302 (redirect).