我试图以这种方式在一个rspec测试上设置时区:
zone = ActiveSupport::TimeZone.new('Hawaii')
Time.stub(:now) { Time.now.in_time_zone(zone) }
这给了我一个堆栈级别太深的错误,我在这里缺少什么?
答案 0 :(得分:7)
尝试这样做:
zone = ActiveSupport::TimeZone.new('Hawaii')
Time.stub(:now){ Time.new.in_time_zone(zone) }
我不确定,但看起来像是now
,然后在块中调用Time.now
会导致堆栈级别太深错误。
答案 1 :(得分:0)
如果您希望每次在测试中遵循特定时间,可以尝试这样的事情
Time.stub(:now).and_return(Time.mktime(2017,01,23,11,00,00).gmtime)