我和Cucumber一直有一个烦人的问题。如果Controller中有任何错误,它只显示capybara引发的错误。我确定这不是以前的工作方式吗?
例如,如果引发异常,我看到的唯一输出是:
expected to find css "h1" with text "blah
“
为了实际看到错误,我必须puts page.body
才能看到控制器错误
这是预期的行为吗?
答案 0 :(得分:0)
这是预期的行为。 Capybara扮演用户的角色,并回应它从服务器上看到的内容。是的,这很烦人,并且很难调试失败。
使用puts page.body
之类的技巧找到问题后,您应该改进较低级别的测试覆盖率,以检测错误原因,提供更多信息性故障,然后解决问题。您的较低级别测试覆盖率越高,运行全栈测试时Ruby代码中出现错误的频率就越低。
顺便说一句,我将此描述为全栈测试(例如Capybara)的问题,而不是与Cucumber相关的问题。 Cucumber可以运行不是全栈的测试,你可以在Cucumber之外运行全栈测试(例如在RSpec中使用Capybara)