gpt4 book ai didi

ruby-on-rails - 为什么我的依赖于 Javascript 的功能规范在未处于 Javascript 模式时通过?

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:28 26 4
gpt4 key购买 nike

我有使用 capybara/capybara-webkit 的非 Javascript 规范和 Javascript 功能规范。

我有一些预期在非 Javascript 模式下会失败的测试,但它们都通过了。我已经在关闭 Javascript 的情况下在我的浏览器中尝试了该功能,但该功能确实没有按预期工作。但在 capybara 中,它有效。

我还尝试将 js: false 添加到单个测试中,以确保我的配置中没有隐藏任何东西来打开它。规范仍然通过。

selenium gem 不包含在我的 Gemfile 中。

最佳答案

我看到两种可能性:您的测试是正确的,但可能有一些原因导致它们意外通过,或者您的测试不正确,并且在您使用 Javascript 运行它们时由于错误的原因而通过。

关于如何调试的一些建议适用于这两种可能性:

  • 使用调试器。 (如果你有,请告诉我们你学到了什么。)

  • 查看一次规范运行的 Rails 日志,了解调用了哪些 Controller 操作以及调用的顺序。

  • 使用 save_and_open_page 对您的页面进行快照并查看您的规范是否应该传递您正在查看的内容。

在使用 Javascript 运行时仔细检查您的测试:

  • 使用 the poltergeist driver 运行它们而不是 capybara-webkit 驱动程序。它提供比 capybara-webkit 和 can be configured 更好的错误消息报告 Javascript 错误消息。

  • 使用 save_screenshot 截取页面的实际屏幕截图并验证规范是否因虚假原因而未通过,可能是因为某些内容不在屏幕上。

如果您想确定 rspec 是否正在运行 Javascript,请使用 ps 查看是否有 capybara-webkit 或 phantomjs 进程正在运行。

关于ruby-on-rails - 为什么我的依赖于 Javascript 的功能规范在未处于 Javascript 模式时通过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com