Я новичок в тестировании кармы-жасмина. Я написал одну службу, которая делает http get call api и возвращает объект данных.Как проверить функции внутри angularjs-сервисов с помощью jasmine-karma
app.service('service_name',['$http',function($http){
this.getData=function(urlPath){
var Data = $http.get(path).success(function(data){
var getData = data;
console.log("getData success");
return getData;
}).error(function(response){
var getData = response;
console.log("getData error");
return getData;
});
console.log(Data);
return Data;
};
}]);
От контроллера я передаю URL этой функции сервиса и получение данных с помощью .then()
обратного вызова;
service_name.getData(url).then(function(data){
console.log('expected data: ', data);
});
Возможный дубликат [Уклонение от Angularjs не разрешается в модульном тесте] (http://stackoverflow.com/questions/15048132/angularjs-promise-not-being-resolved-in-unit-test) –
, когда я запускаю свой приложение в любом браузере все вызовы ajax работают нормально. Теги ajax вызываются при загрузке контроллера. Но когда я запускаю конфигурацию тестирования кармы, эти контроллеры загружаются, но все вызовы ajax пропускаются. –
Вы показываете код службы, а не о контроллерах. Что вы хотите проверить? Если вы хотите активировать вызовы с контроллера, вы должны установить: http://nathanleclaire.com/blog/2013/12/13/how-to-unit-test-controllers-in-angularjs-without-setting-your-hair- on-fire/ –