ruby – Rails使用什么sleep()?
发布时间:2020-12-17 04:40:14 所属栏目:百科 来源:网络整理
导读:我正在测试一段Rails代码: sleep(10.0) 在我的RSpec测试中,调用: Kernel.should_receive(:sleep).exactly(1).time 失败了,测试睡了十秒钟.这使我得出结论,Rails程序中的sleep()不会调用Kernel.sleep().我通过将我的Rails代码更改为: Kernel.sleep(10.0)
我正在测试一段Rails代码:
sleep(10.0) 在我的RSpec测试中,调用: Kernel.should_receive(:sleep).exactly(1).time 失败了,测试睡了十秒钟.这使我得出结论,Rails程序中的sleep()不会调用Kernel.sleep().我通过将我的Rails代码更改为: Kernel.sleep(10.0) …之后我的RSpec测试通过了(测试没有睡觉). 这导致了一个具体的和一般性的问题: > Rails使用什么sleep()实现(我正在运行Ruby 1.9.3 / Rails 3.2.1)? 解决方法
当您未指定显式接收器时,隐式接收器是self,而不是Kernel. (你为什么那么想?)
所以, sleep(10.0) 大致相同 self.sleep(10.0) 并没有完全一样 Kernel.sleep(10.0) 因此,它在自己上调用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |