ale*_*683 3 testing unit-testing angularjs
我$timeout在一些服务代码中使用了例如600ms的延迟.在相应的测试中,我想声明代码确实在给定的600 ms之后完成预期的操作.有没有办法在一定时间内(类似于jasmine.Clock.tick(600))及时进展?我只知道$timeout.flush(),但它会触发$ timeout-queue中的所有内容.
$timeout
jasmine.Clock.tick(600)
$timeout.flush()
Ale*_*yda 7
在AngularJS 1.2版本中你可以做到$timeout.flush(600),这类似于Jasmine的jasmine.Clock.tick(600).
$timeout.flush(600)
除此之外,Angular 1.2提供了一种非常方便的$timeout.flushNext(msec)方法.它与以下内容的不同之处在于flush(msec),该方法不是简单地将时钟放在前面,而是检查预期的事情是否发生,而是flushNext()立即执行这两项任务.它会提前一个时钟,直到下一个延迟事件被触发,然后验证经过的时间是否等于给定的时间.
$timeout.flushNext(msec)
flush(msec)
flushNext()
链接到文档
归档时间:
12 年,3 月 前
查看次数:
2196 次
最近记录:
12 年,1 月 前