2015-11-20 4 views
0

После фиксации много erros в тестировании, теперь выход Карма это:тест блок Карма терпит неудачу в phantomjs

PhantomJS 1.9.8 (Windows 8 0.0.0) Контроллер: MainCtrl должен приложить список т Hings к объем FAILED
Ошибка: Неожиданный запрос: GET/API/Marcas Нет больше запроса ожидается на ....

апи/Marcas является конечной точкой я создал. Код для MainCtrl:

'use strict'; 

angular.module('app') 
.controller('MainCtrl', function ($scope, $http, $log, socket, $location, $rootScope) { 
    window.scope = $scope; 
    window.rootscope = $rootScope 
    $scope.awesomeThings = []; 
    $scope.things = ["1", "2", "3"]; 



    $http.get('/api/things').success(function(awesomeThings) { 
     $scope.awesomeThings = awesomeThings; 
     socket.syncUpdates('thing', $scope.awesomeThings); 
    }); 


    $scope.addThing = function() { 
     if($scope.newThing === '') { 
      return; 
     } 


     $http.post('/api/things', { name: $scope.newThing }); 
     $scope.newThing = ''; 
    }; 

    $scope.deleteThing = function(thing) { 
     $http.delete('/api/things/' + thing._id); 
    }; 

    $scope.$on('$destroy', function() { 
     socket.unsyncUpdates('thing'); 


    }); 



    $http.get('/api/marcas').success(function(marcas) { 
     $scope.marcas = marcas; 
     socket.syncUpdates('marcas', $scope.response); 

     $scope.marcasArr = []; 

     $scope.response.forEach(function(value) { 
      $scope.marcas.push(value.name); 
     }); 

     $scope.marcaSel = function() { 
      for (i = 0; i < $scope.response.length; i++) { 
       if ($scope.selectedMarca == $scope.response[i].name) { 
        $scope.modelos = $scope.response[i].modelos; 
       }; 
      };  
     }; 



    }); 

ответ

0

до тех пор, пока не отправил свой тестовый код, я думаю, что ваш тест не включает в себя следующий код:

beforeEach(inject(function() { 
    httpBackend.expectGET('/api/marcas').respond(function(){ 
     return {/*some status code*/, {/*some data*/}, {/*any headers*/}}; 
    }); 
})); 

если карма-бегун пытается выполнить ваш тестовый код, нужно получить запросы к $ http-service, $ http.get ('/ api/marcas') и $ http.get ('/ api/things'). если один из этих внутренних вызовов не ожидается, карма не сможет успешно запустить тестовый код.

, если вы не хотите, чтобы сделать специальный материал для каждого, но только возвращает значение по умолчанию с успехом кода для обоих вызовов, вы можете написать так:

beforeEach(inject(function() { 
    httpBackend.expectGET(/api/i).respond(function(){ 
     return {/*some status code*/, {/*some data*/}, {/*any headers*/}}; 
    }); 
})); 
+0

Thx братан, я имею в виду сестренка! –

+0

Ваш прием :-) –

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