2013-08-09 5 views
0

내 테스트가 http 요청을 설정했지만 $ httpBackend.flush()를 실행하지 않습니다.

describe("Unit: Testing Services", function() { 
    beforeEach(angular.mock.module('EmsWeb.Services')); 
    describe("Unit: DalService", function() { 
     var $httpBackend, dalService, appModel; 
     beforeEach(inject(function ($q, _$httpBackend_, AppModel, DalService) { 
      dalService = DalService; 
      appModel = AppModel; 
      $httpBackend = _$httpBackend_; 
      $httpBackend.when('POST', '../api/ModuleApi/GetModules').respond({ userId: 'userX', 'A-Token': 'xxx' });    
      appModel.context.company = { code: 'LPL' }; 
     })); 

     describe("canceling request should fail", function() {    

      it('checks request should be canceled ', function() { 
//    $httpBackend.expectPOST('../api/ModuleApi/GetModules'); 
       var returnedData; 
       var callBackFn = function (data) { 
        returnedData = data; 
       }; 
       dalService.getModules('senderIdentifier', appModel.context, callBackFn, callBackFn); 
      }); 

     }); 

     afterEach(function() { 
      $httpBackend.verifyNoOutstandingRequest(); 
     }); 
    }); 

내가 오류를 높이기 위해 $httpBackend.verifyNoOutstandingRequest();을 예상 따라서 $httpBackend.flush()에는 전화가 없었다 : 여기에 테스트입니다.

나는 또한 $httpBackend.expectPOST('../api/ModuleApi/GetModules');을 추가하려고 시도했지만 차이는 없습니다.

무엇이 누락 되었습니까?

답변

0

$ httpBack 요청이 전송되지 않는 한 $ httpBackBack.verifyNoOutstandingRequest()는 "요청 해제"와 관련된 오류를 발생시키지 않습니다. DalService를 공유하고 해당 서비스의 getModules이 무엇인지를 분명히하면 더 명확 해집니다.

관련 문제