0

我似乎无法掌握存根到底是什么。

有人可以解释一下下面的 RSPEC 代码应该做什么。在这里使用存根有什么好处?

require "performance_monitor"

require "time"  # loads up the Time.parse method -- do NOT create time.rb!

describe "Performance Monitor" do
  before do
    @eleven_am = Time.parse("2011-1-2 11:00:00")
  end

  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

end

我想我可以通过一个例子来理解。

4

2 回答 2

3

stub在这里用于sooverride的功能now,而不是在 stub 之后得到的 return它将返回Timecurrent timeTime.nowfake_time

于 2013-09-19T04:55:43.407 回答
0

请注意,存根只会在这一规范中“覆盖”此方法。其他规格会Time.now正确响应

于 2013-09-20T06:38:34.410 回答