Я пытаюсь настроить тест, который включает в себя обещания. Вот мой пример кода:
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
?
ура
Вы должны вызвать метод scope/rootScope $ digest для решения обещаний. Так должно быть:
var result = false;
promise.then(function() { result = true;});
$rootScope.$digest();
expect(result).toBeTruthy();