问题标签 [timecop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 使用 Timecop 的意外 Rspec 结果
这是规范的基本思想:
它出错了:
我正在展示<%= "#{time_ago_in_words(m.created_at)} ago" %>
我希望完全不同的 24 小时。我错过了什么?
ruby-on-rails-3 - 有没有办法在黄瓜测试中测试 cookie 过期?
我想在我的网站上设置一个“记住我”的 cookie,有效期为 2 周而不是永久,并想对此进行测试。
到目前为止,我在这方面的尝试没有成功。
这是我的黄瓜场景;
我对第三步(重要的一步)的步骤定义如下
为没有“记住我”的用户进行类似的会话到期测试工作得很好,但这取决于我的用户表中的 last_request_at 列。此测试取决于浏览器(在本例中为 Capybara)使我的 auth_token cookie 过期。有没有办法做这个测试?
ruby-on-rails-3 - 使用 Rspec + Timecop + Capybara + Capybara Webkit 的集成规范中的 Capybara::FrozenInTime 错误
我在使用 rspec、capybara、capybara-webkit 和 timecop 的某些集成规范中看到错误。
我知道冻结时间的唯一宝石是 Timecop,但我没有在失败的测试用例中使用它。
由于错误仅在某些时候发生,我什至不知道在更改某些内容后它是否消失了。
rspec - 为什么 Timecop.freeze 仅在我运行完整的规格套件时才有效?
我有一个大型 Rails 测试套件,我只使用过一次 Timecop。
当我运行完整套件时,这些规格通过:
或者
但是,如果我尝试运行较小的集合或单个规范,Timecop.freeze 将不起作用。也就是说,以下两个都将失败:
有任何想法吗?我是否遗漏了有关 ruby / rspec / rake 和 bundler 之间的交互的信息?(作为记录——当我运行上述所有以“捆绑执行”开头的内容时,我得到了相同的结果)。
我包括我的 Gemfile 和 spec.helper 以防这澄清任何事情。
宝石文件:
spec_helper.rb:
ruby - Timecop 和 Ruby 2.0.0
谁能建议为什么这个规范使用 Timecop 0.6.1 和 Ruby 2.0.0 失败?
(它使用 Timecop 0.4.5 和 Ruby 1.9.3 通过)
结果是:
ruby-on-rails - 使用 TimeCop 进行 Sidetiq 测试
我正在尝试为使用 Sidetiq 的 Sidekiq 工作编写一些测试,但我似乎无法让它工作。我在处理这个问题的sidetiq repo 上发现了一个问题,但没有人回答它,所以我想我可以把它带到stackoverflow 以获得一些答案和清晰度。
这是问题的链接:https ://github.com/tobiassvn/sidetiq/issues/72
这是似乎不起作用的代码:
spec.rb
worker.rb
再次感谢你的帮助。
ruby - Groovy/Grails 相当于 Ruby/Rails 的 'timecop' gem
有人知道 Groovy/Grails 是否有类似于rubygem timecop的东西吗
我正在为 Grails 项目进行测试,我想以与 gem 相同的方式模拟 DateTime 类。
只是想知道是否有人已经使用 Grails 插件或类似的东西完成了它,所以我不必重新发明轮子。
javascript - Python 中的 Webdriver - 从外部脚本执行函数
如何在 python 中使用 webdriver 执行位于外部 JavaScript 中的函数?
JavaScript 用于覆盖 JavaScript 的内部 DateTime 对象,以便为单元测试提供更改的浏览器时间。为此,我喜欢使用 sinonfaketimers.js。(但也可以使用 TimeShift.js 等替代方案)链接:http ://sinonjs.org/docs/#clock ,https ://github.com/plaa/TimeShift-js
所以我编写了以下 python 代码,它调用 JavaScript 本身而不是相应的函数:
据我正确理解这件事,为了完成这项工作,我需要做的就是使用正确的参数运行相应的 JavaScript 函数。我假设可以通过构建一个合适的字符串来传递参数,例如:
JavaScript sinon_timers.js 中的实际函数是:
完整的脚本可以在 sinonjs.org 上找到:
http://sinonjs.org/releases/sinon-timers-1.12.1.js
但是我不确定在 sinon_timers.js 中调用函数 sinon.timers 的语法。我怎么做?
更新:
Sainath Motlakunta 提出了一个解决方案。不幸的是,它不起作用。但也许我们离破解难题更近了一步:
这会产生:selenium.common.exceptions.WebDriverException: Message: sinon is not defined
完整追溯:
这篇文章中是否有一些有用的信息,问完全相同的问题?: https ://sqa.stackexchange.com/questions/8838/faking-system-time-date-with-selenium-webdriver
建议的解决方案是:
列表项在测试运行期间注入/添加模拟框架
使用 JavaScript Executor 模拟 Date 对象
设置时区
运行测试
mysql - mysql中的模拟时间
问题:我目前正在使用 Time Cop gem 在黄瓜测试用例中模拟时间。有一个测试用例因为 MySQL 没有得到 Time Cop 设置的时间而失败。
可以说。系统日期为 = 2015 年 1 月 21 日,在时间警察之后 = 2015 年 2 月 1 日,由 MySQL 内部
此查询返回“2015 年 1 月 21 日”。因此测试失败了。
所以这带来了我的问题。
- 在测试用例中模拟时间是一种好习惯吗?
- 如何确保如果时间被模拟,那么 MySQL 也收到相同的时间?
api - 带有 API 的强参数
注意:这个问题已经(由我)回答,下面的信息被证明是一个红鲱鱼。我把它留在这里以防它对某人有帮助。下面就来看看答案吧!
我正在将我的所有控制器都升级为强参数,并且我遇到了 API 控制器的问题,我必须在其中做一些时髦的时区工作。
强参数是deal_strong_params
,问题似乎在于将它们作为该deal_params
行中的第二个参数。我已经尝试了很多东西,比如玩弄那个ActionController::Parameters.new()
东西,但还没有做到。与强参数的情况一样,我得到 400 个错误而不是我的预期响应。我已经尝试了很多东西,我真的很欢迎你的建议。
来自 API 控制器的相关代码:
强大的参数:
以及适用于 TimeCop 的特殊时间公式。我包括它,因为我需要它: