0

我正在阅读有关使用“时间”的 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 秒,但从技术上讲,我只是在 time 变量中添加 60 秒fake_time,这应该是瞬时的。为什么需要 60 秒?

measure这是我编写的函数代码。假设测量运行一段代码需要多长时间。

def measure
  m1 = Time.now
  num.times { yield }
  m2 = Time.now
  m2 - m1
end
4

1 回答 1

0

此测试使用基本存根。它不会使该方法花费额外的时间 - 它只是修改将由Time.now. 这对于测试以确保在“已经过去”一定时间后返回预期值很有用。

于 2013-01-14T21:09:29.743 回答