次のような Rails コードをテストしています。
sleep(10.0)
私のRSpecテストでは、以下を呼び出します:
Kernel.should_receive(:sleep).exactly(1).time
失敗し、テストは 10 秒間スリープ状態になりました。sleep()
これにより、Rails プログラムでは が呼び出されていないと結論付けましたKernel.sleep()
。Railsコードを次のように変更して、これを確認しました。
Kernel.sleep(10.0)
...その後、RSpec テストに合格しました (そして、テストはスリープしませんでした)。
これは、特定の一般的な質問につながります。
- Rails は sleep() のどの実装を使用しますか (私は Ruby 1.9.3 / Rails 3.2.1 を実行しています)?
- インタープリターから、関数のソース コードを見つける最も簡単な方法は何ですか?