我正在我的Rails应用程序中运行带有capybara的RSpec测试套件。
当我将binding.pry
置于测试中并尝试Time.current
时,我得到=> Tue, 15 Dec 2015 00:06:30 UTC +00:00
,这是三个月前的事。就我对地理学的基本知识而言,没有一个与EST有3个月差异的时区。那我在这里错过了什么? : - )
在开发环境中运行相同的查询(即通过rails console
)会返回正确的结果。
答案 0 :(得分:2)
听起来您的套件中有使用the Timecop gem的规格。因此,请查看Timecop.freeze
的每个实例,并确保有相应的Timecop.return
语句,以便正确拆除时间冻结并防止其意外的副作用泄漏到您的其他规格中套房。以下是the gem's README的示例:
describe "some set of tests to mock" do
before do
Timecop.freeze(Time.local(1990))
end
after do
Timecop.return
end
it "should do blah blah blah" do
end
end