Я пытаюсь протестировать сервис angularjs с жасмином, который вызывает службу ресурсов, а в функции then вызывает другую функцию вложенных ресурсов. Я использую httpbackend для сброса ложных ответов. Вопрос заключается в том, что во время тестирования, не топить второй ответ на второй запрос вложенной службы ресурса, и я допустил ошибку с Ошибкой ошибок : промываться запросы: 1угловые жасмин множественные вложенные вызовы httpbackend
RestaurantService
var deferred;
var restaurantinfo = {};
var loadMenu = function(){
return Menu.query({}).$promise.then(function(response){
restaurantinfo.menu = response
})
}
var loadLocation = function(){
return Location.query({}).$promise.then(function(response){
restaurantinfo.location = response;
})
}
var getRestaurantInfo = function(){
if(!deferred && (!restaurantinfo.menu.length == 0 || restaurantinfo.location.length === 0)){
deferred = $q.defer();
return loadMenu()
.then(loadLocations)
.then(function(){
deferred.resolve(billinghistory);
return deferred.promise;
})
} else {
if(!deferred.promise.$$state.status){ return deferred.promise; }
deferred.resolve(billinghistory);
return deferred.promise;
}
}
испытания Spec
beforeEach(inject(function(_$httpBackend_, RestaurantService, _Menu_, _Locations_){
httpBackend = _$httpBackend_;
mockRestaurantService = _RestaurantService_;
httpBackend.expect('GET', '/api/menu').respond(mockMenu);
httpBackend.expect('GET', '/api/locations').respond(mockLocations);
mockBalanceService.getRestaurantInfo();
httpBackend.flush()
}))
afterEach(function(){
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
})
функции LoadMenu и loadLocation просто называем Гюлер услуги Ресурсные
httpbackend является промывка первый вызов API/меню но не делает второй вызов API/местоположение
, пожалуйста, можете ли вы подробно описать код обещаний angualr. –
Обновление, насколько я могу, программное обеспечение, над которым я работаю, довольно проприетарно. –