2016-04-07 2 views
0

Ниже служба образец, который я пытаюсь модульного тестирования:httpBackend.expectPUT не работает в angularjs модульного тестирования на заводе

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 

       }); 
      } 
     }; 
    } 

Ниже спецификации образца, что я должен проверить вышеуказанную услугу. Однако его метания ошибка

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

     }); 
    }); 

Ошибка при выполнении спецификации:

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

Тот же подход работал httpBackend.expectGET(). Однако его отказ от PUT. Почему не удается? Как это исправить?

ответ

1

Вы не проходите мимо тела, когда вы проводите тест.

Изменение:

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

к:

service.updateData(id, requestBody).then(function(result){ 
Смежные вопросы