单元测试 – 使用带有延迟的AngularJS中的$timeout-Mock
发布时间:2020-12-17 07:07:23 所属栏目:安全 来源:网络整理
导读:我使用了$timeout,延迟时间为例如一些服务代码600毫秒.在相应的测试中,我想声明代码确实在给定的600 ms之后完成预期的操作.有没有办法在一定时间内及时进展(类似于 jasmine.Clock.tick(600))?我只知道$timeout.flush(),但它会触发$timeout-queue中当前的所
我使用了$timeout,延迟时间为例如一些服务代码600毫秒.在相应的测试中,我想声明代码确实在给定的600 ms之后完成预期的操作.有没有办法在一定时间内及时进展(类似于
jasmine.Clock.tick(600))?我只知道$timeout.flush(),但它会触发$timeout-queue中当前的所有内容.
解决方法
在AngularJS 1.2版中,你可以执行$timeout.flush(600),这类似于Jasmine的jasmine.Clock.tick(600).
除了Angular 1.2提供了非常方便的$timeout.flushNext(msec)方法.它与flush(msec)的不同之处在于,不是简单地给你一个给定时间的时钟,然后检查是否发生了预期的事情,flushNext()方法一次完成两个任务.它会提前一个时钟,直到下一个延迟事件被触发,然后验证经过的时间是否等于给定的时间. Link to the documentation (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |