Ruby time.new 与 time.now

标签 ruby

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 进行 stub ,但谁知道还有什么其他破坏可能会破坏。

关于Ruby time.new 与 time.now,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689163/

相关文章:

ruby - 我可以序列化 ruby​​ Digest::SHA1 实例对象吗?

ruby-on-rails - 谷歌搜索 API ruby

ruby - 我需要在 Ruby 中编写一个返回 true/false 的正则表达式

ruby-on-rails - 在 Ubuntu 10.04 Lucid box 上使用 Nginx 实时发送 Rails 应用程序

ruby-on-rails - 如何返回数组中的最新记录

ruby - 在 Ruby 中,将 "chomp"放在字符串开头而不是结尾的最简单方法是什么?

ruby - 我如何使用 ruby​​ 生成数字组合?

ruby - 如何在 Ruby 中将散列值从字符串转换为数组?

ruby-on-rails - 事件记录对象数组中的下一个元素

ruby-on-rails - 如何从现有的 Time.zone for Rails 创建 Ruby DateTime?