2016-04-07 18 views
0

çalışmıyor ben birim testi çalışıyorum örnek hizmetidir httpBackend.expectPUT. spec yürütme üzerinde ancak onun atma hatasıangularjs fabrika birim testi Aşağıda

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

     }); 
    }); 

hatası:

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

Aynı yaklaşım httpBackend.expectGET çalışmış(). Ancak PUT için başarısız. Neden başarısız oluyor? Nasıl düzeltebilirim?

cevap

1

Testi yaparken bir vücudu geçmiyorsunuz.

Değişimi:

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

için:

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