Promise.resolve (). Тогда не работает в тесте жасмин

0

Я пытаюсь настроить тест, который включает в себя обещания. Вот мой пример кода:

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
    Нет необходимости использовать готовый метод с обещаниями.
Теги:
unit-testing
jasmine
angular-promise

1 ответ

3
Лучший ответ

Вы должны вызвать метод scope/rootScope $ digest для решения обещаний. Так должно быть:

var result = false;
promise.then(function() { result = true;});
$rootScope.$digest();
expect(result).toBeTruthy();
  • 2
    разве вы не должны называть $ digest?
  • 0
    Во всяком случае, $ rootScope. $ Digest (). Вероятно, в окружении try / catch. У меня тоже не работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню