0

我正在使用 capybara 和 capybara-webkit 编写一个集成测试,我需要比较两次并且它随机失败,因为有时第二次通过并且我有失败之类的

expected: "Sep 01 2015 @ 04:49:17 employee_1"
     got: "Sep 01 2015 @ 04:49:18 employee_1" 

在非集成测试中,我必须处理我使用的时间,Timecop.freeze但如果我在这里尝试,我会得到

水豚::FrozenInTime:

时间似乎被冻结了,Capybara 不适用于冻结时间的库,请考虑改用时间旅行

但是,据我了解,时间旅行并不能解决我的问题,因为时间差始终为 1 秒。

有没有办法可以确保在测试执行期间时间不会改变?

谢谢

4

1 回答 1

1

如果您升级到 Capybara 2.5 并使用 Ruby 2.0+,那么 Timecop.freeze 应该可以使用。这是因为 Capybara 2.5 现在将使用系统单调时钟来执行其等待行为(如果可用),允许冻结 ruby​​ 时间方法。

于 2015-09-01T16:45:01.800 回答