【发布时间】:2019-06-11 19:18:57
【问题描述】:
在返回 ajax 请求的结果之前,我正在尝试测试加载图标是否正确显示,而其他元素未正确显示。
我的问题是测试运行太快了!在遇到失败之前,我可以在三个断言之间下车……但我有四个断言要进行!
是否有任何方法可以让 Capybara 在特定时刻针对页面运行它的断言,或者可能有一些解决方法来让加载的内容显示足够长的时间以便以可靠的方式正确测试它?
我目前的测试看起来像这样:
click_on('Submit')
assert_text('...')
refute_text('Edit')
refute_text('Submit')
refute_text('Cancel')
【问题讨论】:
-
这不是一个真正的答案,但考虑不测试它们,至少不在系统级别。我的经验是,这些类型的断言(瞬态元素、次要 UI 行为)可以解决 90% 的开发难题和间歇性故障,而只能消除 10% 的用户工作流实际风险。如果可能,将这些检查下推到客户端单元/集成测试(我知道这并不容易)。如果唯一的选择是做一个脆弱/复杂的系统测试,可能会变成一个球和链,我真的认为有时只接受覆盖范围的差距是有效的。
标签: ruby-on-rails capybara minitest