2012-08-12 109 views
4

我使用RSpec和rspec-rails 2.10進行測試。如何設置RSpec時區?

我已經在environment.rb中將Rails時區設置爲UTC,但RSpec時區成爲我的本地時區,東京。

我已經寫了Time.zone setteing在environments/test.rb和spec_helper.rb但沒有修復。

如何設置RSpec時區?

+0

'Time.zone'使用ActiveSupport :: TimeWithZone,這是在Rails中設置時區的正確方法。你確定你在RSpec中使用ActiveSupport :: TimeWithZone類嗎?有關正確的用法,請參閱此[文檔](http://jsfiddle.net/ARf9M/1/)。 – 2012-08-12 11:17:15

+0

您能否發表一個代碼? 「RSpec時區」有點含糊不清。 – 2012-08-12 14:18:20

+0

@TanzeebKhalili,你發佈的鏈接是一個高腳的JavaScript小提琴,與Rspec,Timezones或ActiveSupport無關。 – gardenofwine 2013-07-24 06:50:43

回答

0

問題是另一點。 我寫了一個調整時區偏移的方法,該方法改變了Rails時區。 這是代碼。

class WeeklyEvent < ActiveRecord::Base 
    def adjust_time_zone_offset 
     Time.zone = timezone # => This is the problem. Rails Time.zone changes to timezone. 
     time_zone_offset = Time.zone.utc_offset # => 32400 JST offset 9 hours in seconds. 
     self.start_date_time = (start_date_time - time_zone_offset).in_time_zone('UTC') 
    end 
end 

japanese_event = WeeklyEvent.find(1) 
p japanese_event.start_date_time #=> Sun, 01 Jan 2012 09:00:00 JST +09:00 
-1

使用Time.zone.now而不是Time.now

+4

問題是關於如何更改時區 – pungoyal 2013-06-12 05:36:16