Promise.resolve()。然后没有在茉莉花测试中工作

时间:2016-05-30 15:29:18

标签: javascript angularjs unit-testing jasmine angular-promise

我试图设置一个涉及承诺的测试。这是我的示例代码:

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的回调?

干杯

1 个答案:

答案 0 :(得分:3)

您需要调用scope / rootScope $ digest方法来解决promise。 所以它应该是:

var result = false;
promise.then(function() { result = true;});
$rootScope.$digest();
expect(result).toBeTruthy();