2016-08-18 6 views
0

以下の動作はtravel_toのテストヘルパーにはバグや機能がありますか?いずれにしても、なぜこのようなことが起こるのですか?DateTime.nowは、Railsコードでは避けてください。 ルビー(2.3.1)レール(4.2.6)minitest(5.9.0)使用minitest/Rails:travel_toブロックのDateTime.nowとDateTime.current

同様
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

答えて

0

あなたがしようとTime.zone.nowTime.zone.todayを使用することはできますか?

IMHOこれはRailsプロジェクトで使用するAPIです。また、参照してくださいhttp://danilenko.org/2012/7/6/rails_timezones/

関連する問題