我正在努力让 Rails 3 应用程序准备好使用时区。我的开发机器在美国东部时间,我托管的服务器在 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
关于ruby-on-rails - 在不更改系统时钟的情况下在 rspec 测试中设置系统时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15974569/