Was nutzt sails () Rails?

8

Ich teste einen Teil des Rails-Codes, der lautet:

%Vor%

Rufen Sie in meinen RSpec-Tests auf:

%Vor%

ist fehlgeschlagen und der Test hat zehn Sekunden lang geschlafen. Dies führte mich zu dem Schluss, dass sleep() in einem Rails-Programm nicht Kernel.sleep() aufruft. Ich habe dies verifiziert, indem ich meinen Rails-Code in:

geändert habe %Vor%

... nach denen meine RSpec-Tests bestanden (und der Test hat nicht geschlafen).

Dies führt zu einer spezifischen und einer allgemeinen Frage:

  • Welche Implementierung von sleep () benutzt Rails (ich betreibe Ruby 1.9.3 / Rails 3.2.1)?
  • Was ist der einfachste Weg, den Quellcode für eine Funktion vom Interpreter zu finden?
fearless_fool 03.07.2012, 11:51
quelle

1 Antwort

8

Der implizite Empfänger ist, wenn Sie keinen expliziten angeben, self , nicht Kernel . (Warum sollten Sie das denken?)

Also,

%Vor%

ist ungefähr dasselbe wie

%Vor%

und nicht oder

%Vor%

Also ruft es Kernel#sleep für self und nicht für Kernel auf. Das bedeutet, dass Sie eine Erwartung für das Objekt self in dieser bestimmten Methode festlegen müssen.

    
Jörg W Mittag 03.07.2012, 12:16
quelle

Tags und Links