У меня есть этот тест жасмин, и, наконец, положение на обещание, кажется, не будет получать казнены, как я получаю ошибку:Наконец положение обещания никогда не получать казнены в тесте Jasmine
PhantomJS 2.1.1 (Mac OS X 0.0.0) Service: petsFactory .getPetsAsync() should return a list of pets FAILED
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Мой тестовый файл выглядит как:
'use strict';
describe('Service: petsFactory', function() {
// load the service's module
beforeEach(module('smokeTestApp'));
// instantiate service
var petsFactory;
beforeEach(inject(function (_petsFactory_) {
petsFactory = _petsFactory_;
}));
describe('.getPetsAsync()', function() {
it('should return a list of pets', function (done) {
var testPets = function (pets) {
expect(Array.isArray(pets)).toBe(true);
}
var failTest = function(error) {
expect(error).toBeUndefined();
};
petsFactory
.getPetsAsync()
.then(testPets)
.catch(failTest)
.finally(done);
});
});
});
Соответствующий фабричный метод выглядит следующим образом:
var getPetsAsync = function() {
return $q.when(pets);
};
содержание домашних животных Vari способный полностью синхронный, обещание - это просто обертка по синхронной стоимости, которая есть тут же.
Что здесь общего не работает?
ли 'затем' функция привлеченным? Кроме того, вы обычно вводите $ q на завод? У меня была аналогичная проблема в прошлом, потому что я вмешивался с угловым инжектором, вместо обычной инъекции в контроллерах/службах. –
$ q вводится нормально. Возможно, тогда его не вызывают. Я просто попытался сделать исключение в функции testPets и все еще получил ту же ошибку в Jasmine. Хотя, это было бы действительно странно, поскольку я использую, когда обертывать синхронное значение. –