我正在使用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秒。
有没有办法可以确保在测试执行期间时间不会改变?
谢谢
答案 0 :(得分:1)
如果升级到Capybara 2.5并使用Ruby 2.0+,则Timecop.freeze应该可用。这是因为Capybara 2.5现在将使用系统单调时钟作为其等待行为(如果可用),允许冻结红宝石时间方法。