我正在测试一段 Rails 代码,内容如下:
sleep(10.0)
在我的 RSpec 测试中,调用:
Kernel.should_receive(:sleep).exactly(1).time
失败,测试休眠了十秒钟。这使我得出结论,sleep()
在 Rails 程序中没有调用Kernel.sleep()
. 我通过将我的 Rails 代码更改为:
Kernel.sleep(10.0)
...之后我的 RSpec 测试通过了(并且测试没有休眠)。
这导致了一个具体和一般性的问题:
- Rails 使用什么 sleep() 实现(我正在运行 Ruby 1.9.3 / Rails 3.2.1)?
- 从解释器中,找到任何函数的源代码的最简单方法是什么?