我正在阅读一篇关于使用“时间”的rspec教程。有人可以解释以下代码的含义吗?
it "takes exactly 1 second to run a block that sleeps for 1 second (with stubs)" do
fake_time = @eleven_am
Time.stub(:now) { fake_time }
elapsed_time = measure do
fake_time += 60 # adds one minute to fake_time
end
elapsed_time.should == 60
end
我认为它需要60秒,但从技术上讲,我只是在时间变量fake_time
上加60秒,这应该是瞬时的。为什么需要60秒?
这是我写的measure
函数的代码。它假设要测量运行代码块所需的时间。
def measure
m1 = Time.now
num.times { yield }
m2 = Time.now
m2 - m1
end
答案 0 :(得分:0)
此测试使用基本stubbing。它不会使该方法花费额外的时间 - 它只是修改Time.now
返回的'stubbed'值。这对于测试非常有用,以确保在经过一段时间后,将返回预期的值。