使用Rspec和Capybara测试登录重定向

4

以下是我正在处理的一个测试案例:

    it "should allow you to login" do
    visit "/"
    fill_in 'Email', :with => 'user@example.org'
    fill_in 'Pass', :with => 'password'
    click_button 'Login'
    current_url.should =~ /dashboard/
end

这个特定的测试失败了。我想知道它是因为无法登录而失败,还是因为我检查current_url太快而失败。等待click_button任务执行并使rails重定向用户的正确方法是什么?

1个回答

3

您尝试过手动进入您的主页,使用这些凭据登录,然后查看会发生什么吗?如果您能够这样做,那么您就能排除它无法工作的想法。

我建议使用内置断言而不是匹配URL名称。像这样:

assert_response(:redirect)
assert_redirected_to(dashboard_path)

无论哪种情况,您都不需要等待按钮点击。

好的观点。我正在使用Rspec,而不是Test :: Unit,但我应该测试响应。 - James
你仍然可以访问这些辅助函数,我认为它们是不错的一行代码,所以即使在我的Rspec测试中,我仍然使用它们。 - MrDanA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接