我需要测试表单是否成功提交,并将用户重定向到正确的页面。
最佳方法是什么?水豚自述文件建议如下:
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
等