testfirst.org Performance Monitor rspec
我正在研究testfirst.org提供的上述问题.下面是我的代码,所有测试都通过:
def measure(iterate = 1)
timestamp = Time.now
iterate.times { yield }
timestamp_end = Time.now
(timestamp_end - timestamp) / iterate
end
但是,如果我将Time.now替换为Time.new,则某些测试会失败.我读到Time.now是Time.new的别名.那么为什么测试失败以及使用这两种方法产生的差异是什么?
最佳答案 这是因为测试用例
stubs为.now而不是.new的返回值:
Time.stub(:now) { @eleven_am }
由于测试期望@eleven_am作为返回值,因此它们会失败.你必须存根Time.new,但谁知道可能破坏的其他破坏.