I have a service need to testing:
(function () {
'use strict';
var app = angular.module('patientPortal');
app.service('SimpleServerCallService', function ($q, $http) {
this.loadServerDataForUrl = function (url) {
var def = $q.defer();
$http.get(url)
.success(function (data) {
if (data) {
def.resolve(data);
} else {
$http.post('util/log/write/info', 'No data was returned from server after call, url=' + url);
def.reject();
}
})
.error(function (error) {
$http.post('util/log/write/error', 'An error occurred while getting data from the server, error=' + error + ', url=' + url);
def.reject(error);
});
return def.promise;
};
this.postDataToUrl = function (url, postData) {
var def = $q.defer();
$http.post(url, postData)
.success(function (data) {
if (data) {
def.resolve(data);
} else {
$http.post('util/log/write/info', 'No data was returned from server after call, url=' + url + ", postData=" + postData);
def.resolve();
}
})
.error(function (error) {
$http.post('util/log/write/error', 'An error occurred while getting data from the server, error=' + error + ', url=' + url + ", postData=" + postData);
def.reject(error);
});
return def.promise;
};
});
}());
And here my code:
describe('SimpleServerCall Service', function () {
var SimpleServerCallService;
var httpMock;
var url = "url";
beforeEach(module('patientPortal', function($provide){
httpMock = jasmine.createSpyObj('$http', ['get']);
$provide.value('$http', httpMock);
httpMock.get.and.returnValue(httpPromise);
}));
beforeEach(inject(function($injector){
SimpleServerCallService = $injector.get('SimpleServerCallService');
}));
it('should make a GET request', function(){
SimpleServerCallService.loadServerDataForUrl(url);
expect(httpMock.get).toHaveBeenCalledWith(url);
});
});
But when I run this test, all unit-test can't run for this code. All code in istanbul coverage is not corvered (function is not covered and statement is not covered). What can I do now?
Aucun commentaire:
Enregistrer un commentaire