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ここでは、スタブの後に取得したreturn の代わりにoverride、の関数nowに使用されます。Timecurrent timeTime.nowfake_time

于 2013-09-19T04:55:43.407 に答える
0

スタブは、この 1 つの仕様でのみこのメソッドを「オーバーライド」することに注意してください。その他のスペックはTime.nowきちんと対応します

于 2013-09-20T06:38:34.410 に答える