我正在努力获得一个可以使用时区的rails 3应用程序.我的开发机器在EDT,我所托管的服务器是UTC.在我的rspec测试中有一种方法可以改变
ruby使用的系统时区,以便我使用相同的系统时区运行测试,而无需更改计算机上的系统时钟.我看过Delorean和Timecop,他们不是我在找的.我正在寻找类似的东西
Time.system_time_zone = "UTC"
…然后Time.now将返回UTC时间,而不是我的系统时区设置为.
解决方法
before {Time.stub(:now) {Time.now.utc}}
有了这个,在你的测试中调用了Time.now,它会以UTC为单位返回系统的时间.
例:
describe Time do before {Time.stub(:now) {Time.now.utc}} it "returns utc as my system's time" do Time.now.utc?.should be_true end end