2015-05-05 21 views
0

Я пытаюсь проверить запрос rootscope HTTP в моем случаеКак проверить запрос HTTP в моем случае

У меня есть что-то вроде

mainCont файла

$rootScope.testLoad = $http.get('/api/testapi/product'); 

TestCont файла

$rootScope.testLoad.success(function(product){ 
    console.log(product) 
}) 

Тестовый файл

describe('test', function() { 
    var $httpBackend, $rootScope, scope, mainCont, testCont; 

    beforeEach(module('myApp')); 

    beforeEach(inject(function (_$controller_, _$httpBackend_, _$rootScope_) { 
     scope = _$rootScope_.$new(); 
     $rootScope = _$rootScope_; 
     $httpBackend = _$httpBackend_; 

     testCont = _$controller_('testCont', { 
      $scope: scope 
     }); 

     mainContr = _$controller_('mainCont', { 
      $scope: scope 
     }); 
    })); 

    describe('test http request', function() { 
     it('should check if the api is called', function() {  
      $httpBackend.expectGET('/api/testapi/product').respond(200); 
      //I am not sure how to test the call in testCont file. 
     }) 
    }) 
}); 

Я не уверен, как проверить вызов в testCont, потому что, когда я запустить тест, я получил ошибку говоря

TypeError: 'undefined' is not an object (evaluating '$rootScope.testLoad.success') 

Может кто-нибудь помочь мне решить эту проблему? Большое спасибо!

ответ

1

В качестве функции вы определили testLoad, поэтому вам нужно вызвать его, добавив круглые скобки. Измените свой код на

$rootScope.testLoad().success(function(product){ 
    console.log(product) 
}) 
+0

Спасибо за помощь. Я все еще получаю ту же ошибку +1 – BonJon

+0

Я не знаком с вашей настройкой тестирования. Вы уверены, что правильно вводите '$ rootScope' в файлы mainCont и testCont? – tyler

+0

Я бы так подумал, у меня есть еще один файл для тестирования, который работает с настройкой, подобной этой. – BonJon

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