如果我为$q
Angular 创建一个用于模拟或创建 Promise 的测试,则会创建一个延迟任务。
我认为通过调用$rootScope.$apply
应该解决这些承诺。
但是,如果我这样做$timeout.verifyNoPendingTasks()
,则会引发异常,因为
错误:要刷新的延迟任务(1):{id:0,时间:0}
为什么会这样以及如何解决?
it.only('should work', function () {
var spy = sinon.spy();
$q.when().then(spy);
$rootScope.$apply();
spy.should.have.been.called;
$timeout.verifyNoPendingTasks();
});