was sleep() funktioniert Schienen verwenden?

Teste ich ein Stück von Rails-code, der liest:

sleep(10.0)

In meinem RSpec-tests, Aufruf:

Kernel.should_receive(:sleep).exactly(1).time

gescheitert, und der test geschlafen, für zehn Sekunden. Dies führte mich zu dem Schluss, dass sleep() in einer Rails-Programm nicht aufrufen Kernel.sleep(). Ich überprüfte dies, indem Sie meinen Rails-code:

Kernel.sleep(10.0)

... nach dem meine RSpec tests bestanden (und der test hat nicht schlafen).

Führt dies zu einer spezifischen und einer Allgemeinen Frage:

  • Was die Implementierung von sleep() hat Rails verwenden (ich bin mit Ruby 1.9.3 /Rails 3.2.1)?
  • Der Dolmetscherin, was ist der einfachste Weg zu finden, den Quellcode der Funktion?
  • Die einzige andere sleep Methode, die ich finden kann, in der ruby-api ist die Mutex#sleep, so dass könnte es sein: apidock.com/ruby/Mutex/sleep
  • Wenn Sie möchten, stellen Sie zwei Fragen, die Sie stellen sollten zwei Fragen. Ich wählte zu ignorieren, die zweite Frage in meiner Antwort, da es schon gefragt wurde und antwortete mehrmals auf StackOverflow.
  • Jorg: ja, ich war mir bewusst der Gefahren, die von zwei Fragen auf einmal! Danke...
Schreibe einen Kommentar