我尝试在$timeout
之后测试更改,这是:
it('after timeout', function () {
expect(scope.Vm.isLoaded).toBe(true);
$timeout.flush(10);
$timeout.flush(2000);
$timeout.verifyNoPendingTasks();
expect(scope.Vm.isLoaded).toBe(false);
});
这不起作用
检查$timeout.verifyNoPendingTasks();
我有错误:
之后我补充道:错误:要延迟的任务要刷新(2):{id:0,时间:0},{id:1,时间: 2000}
$timeout.flush(10);
结果是:
错误:要延迟的任务要冲洗(1):{id:1,time:2000}
添加时:
$timeout.flush(10);
$timeout.flush(2000);
测试失败,看起来它不起作用,我错过了什么?有任何想法吗?
答案 0 :(得分:0)
帮助您非常困难,因为一开始您没有显示要测试的代码。我们不知道为什么您的测试代码会有两个超时。
第二个是Angular JS在https://github.com/angular/angular.js/issues/14336
中描述了verifyNoPendingTasks()的问题在您创建此问题后,它在6月27日的提交https://github.com/angular/angular.js/commit/6f7674a7d063d434205f75f5b861f167e8125999中得到解决。
所以,我相信,如果您更新AngularJS依赖项,则可以正确使用$ verifyNoPendingTasks方法。