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秒かかると思われますが、技術的には、時間変数に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 に答える