我需要测试表单是否成功提交以及用户是否被重定向到正确的页面。
最好的方法是什么? capybara 自述文件建议如下:
click_button 'Sign in'
assert_text 'Success'
但我发现这不可靠,有时还模棱两可。有没有办法做类似下面的事情?
assert_redirects_to after_sign_in_path do
click_button 'Sign in'
end
最佳答案
应该是
click_button 'Sign in'
assert_current_path after_sign_in_path
但是如果您在原始示例中选择的字符串是仅在登录后页面上存在的内容,那么您现在声明的 URL 与用户确实无关
assert_text "You've logged in"
您至少断言了与用户相关的内容(显然文本取决于您的应用程序显示的内容)。如果它“不可靠”,那么您需要弄清楚为什么它不可靠 - 如果是您的页面有时需要更长的时间才能登录,那么请为该断言指定延长的最长等待时间
assert_text "You've logged in", wait: 10
等等
关于ruby - 如何断言表单提交与 capybara 和 minitest 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58738373/