问题标签 [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.

0 投票
1 回答
1197 浏览

ruby-on-rails - 使用 Timecop 的意外 Rspec 结果

这是规范的基本思想:

它出错了:

我正在展示<%= "#{time_ago_in_words(m.created_at)} ago" %>我希望完全不同的 24 小时。我错过了什么?

0 投票
0 回答
223 浏览

ruby-on-rails-3 - 有没有办法在黄瓜测试中测试 cookie 过期?

我想在我的网站上设置一个“记住我”的 cookie,有效期为 2 周而不是永久,并想对此进行测试。

到目前为止,我在这方面的尝试没有成功。

这是我的黄瓜场景;

我对第三步(重要的一步)的步骤定义如下

为没有“记住我”的用户进行类似的会话到期测试工作得很好,但这取决于我的用户表中的 last_request_at 列。此测试取决于浏览器(在本例中为 Capybara)使我的 auth_token cookie 过期。有没有办法做这个测试?

0 投票
2 回答
3336 浏览

ruby-on-rails-3 - 使用 Rspec + Timecop + Capybara + Capybara Webkit 的集成规范中的 Capybara::FrozenInTime 错误

我在使用 rspec、capybara、capybara-webkit 和 timecop 的某些集成规范中看到错误。

我知道冻结时间的唯一宝石是 Timecop,但我没有在失败的测试用例中使用它。

由于错误仅在某些时候发生,我什至不知道在更改某些内容后它是否消失了。

0 投票
1 回答
4582 浏览

rspec - 为什么 Timecop.freeze 仅在我运行完整的规格套件时才有效?

我有一个大型 Rails 测试套件,我只使用过一次 Timecop。

当我运行完整套件时,这些规格通过:

或者

但是,如果我尝试运行较小的集合或单个规范,Timecop.freeze 将不起作用。也就是说,以下两个都将失败:

有任何想法吗?我是否遗漏了有关 ruby​​ / rspec / rake 和 bundler 之间的交互的信息?(作为记录——当我运行上述所有以“捆绑执行”开头的内容时,我得到了相同的结果)。

我包括我的 Gemfile 和 spec.helper 以防这澄清任何事情。

宝石文件:

spec_helper.rb:

0 投票
3 回答
1658 浏览

ruby - Timecop 和 Ruby 2.0.0

谁能建议为什么这个规范使用 Timecop 0.6.1 和 Ruby 2.0.0 失败?

(它使用 Timecop 0.4.5 和 Ruby 1.9.3 通过)

结果是:

0 投票
1 回答
1169 浏览

ruby-on-rails - 使用 TimeCop 进行 Sidetiq 测试

我正在尝试为使用 Sidetiq 的 Sidekiq 工作编写一些测试,但我似乎无法让它工作。我在处理这个问题的sidetiq repo 上发现了一个问题,但没有人回答它,所以我想我可以把它带到stackoverflow 以获得一些答案和清晰度。

这是问题的链接:https ://github.com/tobiassvn/sidetiq/issues/72

这是似乎不起作用的代码:

spec.rb

worker.rb

再次感谢你的帮助。

0 投票
1 回答
204 浏览

ruby - Groovy/Grails 相当于 Ruby/Rails 的 'timecop' gem

有人知道 Groovy/Grails 是否有类似于ruby​​gem timecop的东西吗

我正在为 Grails 项目进行测试,我想以与 gem 相同的方式模拟 DateTime 类。

只是想知道是否有人已经使用 Grails 插件或类似的东西完成了它,所以我不必重新发明轮子。

0 投票
0 回答
2339 浏览

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

建议的解决方案是:

  1. 列表项在测试运行期间注入/添加模拟框架

  2. 使用 JavaScript Executor 模拟 Date 对象

  3. 设置时区

  4. 运行测试

0 投票
0 回答
497 浏览

mysql - mysql中的模拟时间

问题:我目前正在使用 Time Cop gem 在黄瓜测试用例中模拟时间。有一个测试用例因为 MySQL 没有得到 Time Cop 设置的时间而失败。

可以说。系统日期为 = 2015 年 1 月 21 日,在时间警察之后 = 2015 年 2 月 1 日,由 MySQL 内部

此查询返回“2015 年 1 月 21 日”。因此测试失败了。

所以这带来了我的问题。

  1. 在测试用例中模拟时间是一种好习惯吗?
  2. 如何确保如果时间被模拟,那么 MySQL 也收到相同的时间?
0 投票
1 回答
77 浏览

api - 带有 API 的强参数

注意:这个问题已经(由我)回答,下面的信息被证明是一个红鲱鱼。我把它留在这里以防它对某人有帮助。下面就来看看答案吧!

我正在将我的所有控制器都升级为强参数,并且我遇到了 API 控制器的问题,我必须在其中做一些时髦的时区工作。

强参数是deal_strong_params,问题似乎在于将它们作为该deal_params行中的第二个参数。我已经尝试了很多东西,比如玩弄那个ActionController::Parameters.new()东西,但还没有做到。与强参数的情况一样,我得到 400 个错误而不是我的预期响应。我已经尝试了很多东西,我真的很欢迎你的建议。

来自 API 控制器的相关代码:

强大的参数:

以及适用于 TimeCop 的特殊时间公式。我包括它,因为我需要它: