0

run_times を実行するたびに私が理解していることから、run_times の値の 1 つがポップオフされ、fake_time に追加されます。そして、私の測定方法では、それらを収集して平均を取得することになっています。しかし、メソッド内から値を取得できないようです。

次の rspec を渡す必要があります。

it "returns the average time, not the total time, when running multiple times" do
  run_times = [8,6,5,7]
  fake_time = @eleven_am
  Time.stub(:now) { fake_time }
  average_time = measure(4) do
    fake_time += run_times.pop
end
  average_time.should == 6.5
end

これが私のコードです:

def measure (n = 1)
  if n > 1 
    n.times { yield }

  else
    start = Time.now
    yield
    elapsed_time = Time.now - start
    elapsed_time

  end

end

前もって感謝します!私はしばらくこれに固執しており、何も機能していないようです。

4

1 に答える 1

0

n.timesを返しますnよね?つまり、is 、 so is 、 notの場合にmeasure返されます。4n4average_time46.5

于 2013-06-09T04:32:57.840 に答える