我试图设置一个涉及承诺的测试。这是我的示例代码:
var promise;
beforeEach(inject(function ($q) {
promise = $q.resolve();
}));
it('should resolve', function (done) {
promise.then(function () {
expect(true).toBeTruthy();
done();
});
});
出于某种原因,当我运行时,我得到一个TIMEOUT
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
为什么承诺没有执行给then
的回调?
干杯
答案 0 :(得分:3)
您需要调用scope / rootScope $ digest方法来解决promise。 所以它应该是:
var result = false;
promise.then(function() { result = true;});
$rootScope.$digest();
expect(result).toBeTruthy();