0
travel_to测试助手的下列行为是一个bug还是一个功能?无论哪种方式,为什么会发生这种情况,并应该在Rails代码中完全避免使用DateTime.now?Minitest/Rails:DateTime.now与DateTime.current在travel_to中的区别
使用红宝石(2.3.1),导轨(4.2.6)和MINITEST(5.9.0):
test 'traveling to 1900 (Time)' do
travel_to Time.new(1916, 1, 1, 7, 0, 0) do
puts Time.current
puts Time.now
puts DateTime.current
puts DateTime.now
puts Time.zone.now
puts Time.zone.today
end
end
=>
1916-01-01 07:00:00 UTC
1916-01-01 07:00:00 UTC
1916-01-01T07:00:00+00:00
2016-08-18T14:29:20+02:00
1916-01-01 07:00:00 UTC
1916-01-01
类似地,
test 'traveling to 1900 (DateTime)' do
travel_to DateTime.new(1916, 1, 1, 7, 0, 0) do
puts Time.current
puts Time.now
puts DateTime.current
puts DateTime.now
puts Time.zone.now
puts Time.zone.today
end
end
=>
1916-01-01 07:00:00 UTC
1916-01-01 07:00:00 UTC
1916-01-01T07:00:00+00:00
2016-08-18T14:29:24+02:00
1916-01-01 07:00:00 UTC
1916-01-01
您是否试过''timecop''宝石?也许''travel_to''还没有完成。 – zhon
谢谢,试试吧。 – sunless