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