Я использую mocha и chai для выполнения некоторых модульных испытаний услуги AngularJS. Служба имеет разные функции, и каждая функция возвращает обещание.Ошибка при тестировании обещаний с помощью Mocha
Проблема, с которой я сталкиваюсь, заключается в том, что тест не ждет, пока значение обещания будет разрешено до утверждения. Я знаю done() callback можно использовать с мокко. Итак, я попытался использовать это. Но это также дает мне ошибку. Вот код:
describe('Service Test', function() {
var factory;
beforeEach(module('Test'));
beforeEach(inject(function(_QueryService_){
factory = _QueryService_;
})
);
it('should check simpleQuery method',function(done){
var promise = factory.query("args");
var value;
promise.then(function(data){
value = data;
assert.equal(1,2);
done();
}, function(error){
assert.equal(3,4);
done();
});
});
});
Так что проблема прямо сейчас в том, что тест не терпит неудачу (как и должно быть). Вместо этого он просто таймаут и дает мне сообщение об ошибке: «тайм-аут 2000 мс превышена Убедитесь, что сделано() обратного вызова вызывается в этом тесте»
И если я не включаю сделать обратный вызов, то испытание проходит потому что он даже не оценивает условие.
Может кто-нибудь предложить исправить? Благодаря!
Когда вы не используете 'done', вы действительно возвращаете обещание? Если вы этого не сделаете, это не сработает. – Louis
@leMS Помогло ли мое решение для вас? Если это так, пожалуйста, отметьте его как решение. :) –