我有使用capybara / capybara-webkit的非Javascript规范和Javascript功能规范。
我有一些测试,我希望在非Javascript模式下失败,但他们正在通过。我在浏览器中尝试了关闭Javascript的功能,但功能确实无法按预期工作。但是在Capybara,它有效。
我还尝试将js: false
添加到单个测试中,以确保我的配置中没有隐藏的内容将其打开。规范仍然通过。
我的Gemfile中没有包含selenium gem。
答案 0 :(得分:2)
我看到两种可能性:你的测试是正确的,但可能有一些原因导致它们意外通过,或者你的测试不正确,并且当你在Javascript中运行时它们传递的原因是错误的。
有关如何调试的一些建议适用于这两种可能性:
使用调试器。 (如果有,请告诉我们您的学习内容。)
从规范的单个运行中查看Rails日志,以查看调用的控制器操作以及调用顺序。
使用save_and_open_page
对您的网页进行快照,看看您的规范是否应传递您所查看的内容。
使用Javascript运行时仔细检查您的测试:
使用the poltergeist driver而不是capybara-webkit驱动程序运行它们。它提供了比capybara-webkit和can be configured报告Javascript错误消息更好的错误消息。
使用save_screenshot
获取页面的实际屏幕截图,并验证规范是否因虚假原因而未通过,可能是因为某些内容不在屏幕上。
如果您想确定rspec是否正在运行Javascript,请使用ps
查看是否正在运行capybara-webkit或phantomjs进程。