2016-08-18 27 views
0

travel_to测试助手的下列行为是一个bug还是一个功能?无论哪种方式,为什么会发生这种情况,并应该在Rails代码中完全避免使用DateTime.nowMinitest/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 
+0

您是否试过''timecop''宝石?也许''travel_to''还没有完成。 – zhon

+0

谢谢,试试吧。 – sunless

回答