2013-08-09 3 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

$ httpBackend.verifyNoOutstandingRequest() не будет вызывать ошибки в отношении "Unflushed requests", если не отправлен запрос $ http. Все станет понятнее, если вы поделитесь с DalService и что такое getModules в этом сервисе.

Смежные вопросы