0
Im Folgenden finden Sie den Beispieldienst, den ich Unit-Test bin versucht:httpBackend.expectPUT nicht in AngularJS Werkseinheit zu testen
angular.module('sampleModule')
.factory('sampleService', sampleService);
sampleService.$inject = ['$http'];
function sampleService($http) {
var endpoint = "http://localhost:8088/api/customers/"
return {
getData: function(id){
return $http({
method: 'GET',
url: endpoint + id
});
},
updateData: function(id, requestBodyObject){
return $http({
method: 'PUT',
url: endpoint + id,
data: requestBodyObject
});
}
};
}
Unten ist die Probe spec, dass ich den oben Service zu testen. Doch seine Wurffehler
describe('Sample Service', function(){
var service, httpBackend;
beforeEach(function(){
angular.mock.module('sampleModule');
angular.mock.inject(function(_sampleService_, $httpBackend){
service = _sampleService_;
httpBackend = $httpBackend;
});
});
it('updateAdvisorAttributesData should return response on valid acctNumber', function(){
var response = {};
var errResponse = {};
var id = 1234;
var requestBody = {
'1': 'one'
};
var endpoint = "http://localhost:8088/api/customers/"
httpBackend.expectPUT(endpoint + id, requestBody).respond(200, {'key': 'value'});
service.updateData(id).then(function(result){
response = result;
},function(error){
errResponse = error;
});
httpBackend.flush();
expect(response.status).toBe(200);
expect(response.data).toEqual({'key': 'value'});
});
});
Fehler bei der Ausführung der Spezifikation:
Error: Expected PUT http://localhost:8088/biga/advisors/1234 with different data
EXPECTED: {"1":"one"}
GOT: undefined
Der gleiche Ansatz arbeitete für httpBackend.expectGET(). Jedoch ist es für PUT versagt. Warum scheitert? Wie repariere ich es?