gpt4 book ai didi

javascript - 如何在 Rspec 功能规范期间创建 Javascript stub 对象?

转载 作者:行者123 更新时间:2023-11-28 05:48:39 32 4
gpt4 key购买 nike

我在 rspec 中有一些当前的功能规范,目前正在测试一些 javascript 功能。在这些库中,我使用 Modernizr 主要检测 touchevents。由于我使用 Poltergeist 和 PhantomJS,Modernizr.touchevents 始终返回 true,即使我更希望它返回 false 来运行其他条件。

有没有办法显式地删除 Modernizr.touchevents 或只是将 Modernizr 全部删除?

我尝试过以下方法:

  1. Modernizr.touchevents = false
  2. Modernizr.touchevents = {}
  3. Modernizr = {}
  4. 在测试期间不要包含 Modernizr 库,但是我的测试失败了,因为我期望 Modernizr 存在。

即使它不是 Modernizr,你如何删除 javascript 库,特别是如果你在测试时不关心它的功能。

谢谢

编辑:

到目前为止,仅执行 Modernizr.touchevents = false; 是否正确?如果我设置它,Modernizr 会重新初始化它吗?或者这是永久性的?

编辑2:

由于我使用的是 poltergeist 和 phantomjs,Modernizr 认为它是一个触摸设备。我希望能够切换它。

最佳答案

来自rspec-rails docs :

Feature specs are high-level tests meant to exercise slices of functionality through an application. They should drive the application only via its external interface, usually web pages.

您的功能规范不应执行用户无法通过 UI 执行的任何操作(例如:输入 URL、单击链接等)。模拟/ stub Javascript 不适合这种测试。

关于javascript - 如何在 Rspec 功能规范期间创建 Javascript stub 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270658/

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