【发布时间】:2014-11-04 17:56:10
【问题描述】:
我正在尝试以这种方式在一个 rspec 测试中设置时区:
zone = ActiveSupport::TimeZone.new('Hawaii')
Time.stub(:now) { Time.now.in_time_zone(zone) }
这给了我一个堆栈级别太深的错误,我在这里缺少什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rspec
我正在尝试以这种方式在一个 rspec 测试中设置时区:
zone = ActiveSupport::TimeZone.new('Hawaii')
Time.stub(:now) { Time.now.in_time_zone(zone) }
这给了我一个堆栈级别太深的错误,我在这里缺少什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rspec
尝试这样做:
zone = ActiveSupport::TimeZone.new('Hawaii')
Time.stub(:now){ Time.new.in_time_zone(zone) }
我不确定,但似乎存根 now 然后在块中调用 Time.now 会导致堆栈级别太深错误。
【讨论】:
如果您想在每次测试中遵循特定时间,您可以尝试这样的方法
Time.stub(:now).and_return(Time.mktime(2017,01,23,11,00,00).gmtime)
【讨论】: