如何在Rails 3中进行集成测试?

发布于 2024-12-07 20:38:05 字数 550 浏览 0 评论 0原文

我尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剧终人散尽 2024-12-14 20:38:05

事实证明上面的代码是正确的。

我更改了部分用户验证代码,导致在我不希望的情况下重定向到登录表单。这就是响应为 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文