据我所知,每次运行run_times时都会弹出一个run_times值并将其添加到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
提前谢谢!我已经坚持了一段时间,似乎无法得到任何工作。
答案 0 :(得分:0)
n.times
会返回n
,不是吗?也就是说,如果measure
为4
,则n
会返回4
,因此average_time
为4
,而不是6.5
。