3

$timeout一部のサービスコードでは、たとえば 600ms の遅延で使用しました。対応するテストでは、指定された 600 ミリ秒後にコードが期待どおりに動作することを確認したいと思います。一定の時間で進行する方法はありますか (に似ていjasmine.Clock.tick(600)ます)? 私は についてしか知りませんが$timeout.flush()、それは現在 $timeout-queue にあるすべてのものを起動します。

4

1 に答える 1

7

AngularJS バージョン 1.2$timeout.flush(600)では、Jasmine のjasmine.Clock.tick(600).

それに加えて、Angular 1.2 は非常に便利な$timeout.flushNext(msec)方法を提供します。とは異なり、flush(msec)指定された時間を単純に進めて、予想されることが起こったかどうかを確認するのではなく、flushNext()メソッドが両方のタスクを一度に実行します。次の遅延イベントが発生するまで時計を進めてから、経過時間が指定された時間と等しいことを確認します。

ドキュメントへのリンク

于 2013-09-16T15:04:29.683 に答える