Как я могу проверить ценность обещания, возвращенного службой? В $q documentation значение обещания задано в тесте с помощью разрешения (значения). Другие подходы проверяют логику обслуживания в контроллере, используя тот факт, что AngularJS оценивает обещания и связывает значения $ scope.Тестирование значения обещания, возвращаемого службой
На мой взгляд, ни один из этих подходов фактически не проверяет логику службы в том месте, где она должна быть проверена. Как я могу проверить, что разрешенное обещание (которое возвращается службой) содержит правильное значение?
Вот пример:
myApp.service('service', function($q){
var obj = {};
obj.test = function() {
var deferred = $q.defer();
deferred.resolve(false);
return deferred.promise;
}
return obj;
});
Для того, чтобы протестировать услугу, я хочу сделать следующее в теории (которая не работает на практике): вар $ д, обслуживание;
beforeEach(function() {
module('myModule');
service = $injector.get('service');
});
describe('...', function() {
it('Testing whether promise contains correct value', function() {
var myPromise = service.test();
myPromise.then(function(value) {
expect(value).toBeFalsy();
});
});
});
Я согласен с тем, что я должен вернуть обещание (изменил его в исходном вопросе), но это все еще не заставляет его работать. – bengro
можете ли вы разместить другие части вашего теста, в частности, в той части, где вы настраиваете тесты? –
Я обновил тест в исходном вопросе. – bengro