黄瓜仅在控制器出错时显示Capybara错误

时间:2013-08-23 12:30:16

标签: ruby-on-rails cucumber

我和Cucumber一直有一个烦人的问题。如果Controller中有任何错误,它只显示capybara引发的错误。我确定这不是以前的工作方式吗?

例如,如果引发异常,我看到的唯一输出是:    expected to find css "h1" with text "blah

为了实际看到错误,我必须puts page.body才能看到控制器错误

这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

这是预期的行为。 Capybara扮演用户的角色,并回应它从服务器上看到的内容。是的,这很烦人,并且很难调试失败。

使用puts page.body之类的技巧找到问题后,您应该改进较低级别的测试覆盖率,以检测错误原因,提供更多信息性故障,然后解决问题。您的较低级别测试覆盖率越高,运行全栈测试时Ruby代码中出现错误的频率就越低。

顺便说一句,我将此描述为全栈测试(例如Capybara)的问题,而不是与Cucumber相关的问题。 Cucumber可以运行不是全栈的测试,你可以在Cucumber之外运行全栈测试(例如在RSpec中使用Capybara)