Angenommen, ich habe die folgende anonyme Funktionalität in einer Direktive:
%Vor%Dies funktioniert erfolgreich. Nun, wenn ich einen Test schreiben wollte, mit Jasmin, um sicherzustellen, dass die Klasse nach ~ 2s entfernt wird, wie würde dies geschehen?
Ich sollte hinzufügen, dass ich versucht habe, bisher sowohl jasmine.Clock
als auch waitsFor
Ansätze zu verwenden, und in beiden Fällen sind die Tests fehlgeschlagen. Bemerkenswerterweise, wenn ich $timeout
in setTimeout
innerhalb meiner Direktive ändere, sind beide Tests bestanden, also scheint das eckige Verhalten hier zu spielen.
(Beachten Sie, dass die Verwendung von $timeout.flush()
hier nicht zufriedenstellend ist, da es nur beweist, dass das Zeitlimit abgelaufen ist, nicht wie lange es gedauert hat).
Beginnend in 1.2 $timeout.flush()
nimmt einen Verzögerungsparameter, der die Uhr ähnlich wie jasmine.Clock
simuliert. s Simulation, aber in einer Weise, die Angular $ Timeout glücklich macht.
Also wird dieser Test bestanden:
%Vor%