如何在RSpec上设置正确的时间。
[2] pry(#<RSpec::ExampleGroups::Device::Creation::Security>)> Time.now
=> Fri, 01 Jan 2016 10:00:00 CET +01:00
在rails控制台上我有正确的时间:
[1] pry(main)> Time.now
=> 2015-12-11 12:41:36 -0500
我不想留言,因为我没有把时间花在课堂上。在I类测试中使用以下方法:
def within_expiration?
Time.now - user.sms_sent_date < time_limit_in_seconds
end
这不符合预期,因为Time.now
是2016年1月1日
user.sms_sent_date
有正确的约会对象。
答案 0 :(得分:2)
确保您没有任何库正在改变规范中的Time
。
例如,最常用的一种是Timecop
。确保您没有全局设置它,而是使用块或before/after
来正确模拟日期并在不再需要时拆除模拟。