2016-04-07 2 views
0

est inférieur au service de l'échantillon que je suis en train de test unitaire:httpBackend.expectPUT ne fonctionne pas dans l'unité AngularJS usine essai

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 

       }); 
      } 
     }; 
    } 

est la spécification ci-dessous exemple que je dois tester le service ci-dessus. Cependant son erreur de lancer

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'}); 

     }); 
    }); 

Erreur lors de l'exécution de la spécification:

Error: Expected PUT http://localhost:8088/biga/advisors/1234 with different data 
    EXPECTED: {"1":"one"} 
    GOT:  undefined 

La même approche a fonctionné pour httpBackend.expectGET(). Cependant, son échec pour PUT. Pourquoi échoue? Comment je le répare?

Répondre

1

Vous ne passez pas un corps lorsque vous faites le test.

Change:

service.updateData(id).then(function(result){ 

à:

service.updateData(id, requestBody).then(function(result){