我试图将Timecop
包裹在shared_example
我编写的规范
describe "timecop wrapping shared example" do
Timecop.freeze(1.day.ago) do
it_behaves_like "a shared example i would like to test using timecop"
end
end
shared_examples "a shared example i would like to test using timecop"
before :all do
puts "the current time is #{Time.now}"
end
... expect ...
end
但运行此规范仍然使用实时而不是冻结的
Timecop可以像这样工作吗?
我怎么能包装我的测试文件的大部分,但改变它运行的时间
答案 0 :(得分:2)
Timecop需要在它内部或之前执行。
以下更改将解决您的问题。
describe "timecop wrapping shared example" do
before { Timecop.freeze(1.day.ago) }
it_behaves_like "a shared example i would like to test using timecop"
end
运行每个示例后,Rspec将重置环境(包括Timecop)。
我在测试中发现了一些可能有用的技巧: