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:
... nach denen meine RSpec-Tests bestanden (und der Test hat nicht geschlafen).
Dies führt zu einer spezifischen und einer allgemeinen Frage:
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.
Tags und Links ruby ruby-on-rails-3