1

Я искал пару часов для решения этого вопроса, но я просто не могу заставить его работать. У меня есть контроллер определяется как:AngularJS - Unit Test - Контрольный контроллер с пользовательскими услугами

(function() { 
    'use strict'; 
    angular.module('spaSkeleton.parCCP') 
     .controller('ParCCPCtrl', function ($scope, $mdToast, AnosLetivosService, UnidadesOrganicasService, CursosService, RelatoriosService, PareceresService) { 
    //my code 

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

var app = angular.module('sigq.anosLetivos', []); 
app.service('AnosLetivosService', function (Restangular) { 
    this.getAnosLetivos = function() { 
     return Restangular.all("anos-letivos").getList({"sort": "ano_inicio"}); 
    }; 
}); 

и в моем тестовом файле у меня есть это:

describe('Parecer Controllers', function(){ 

    beforeEach(module('spaSkeleton.parCCP')); 

    beforeEach(function() { 
     module('namespace.anosLetivos'); 
     module('namespace.unidadesOrganicas'); 
     module('namespace.cursos'); 
     module('namespace.relatorios'); 
     module('namespace.pareceres'); 
     module('namespace.landingPage'); 
    }); 


    describe('Parecer Ctrl', function(){ 
     var scope, ctrl, $httpBackend; 

     beforeEach(inject(function(_$httpBackend_, $rootScope, $controller) { 
      $httpBackend = _$httpBackend_; 
      $httpBackend.expectGET(...).respond(...); 

      scope = $rootScope.$new(); 
      ctrl = $controller('ParCtrl', {$scope: scope}); 
     })); 

    }); 

}); 

Я хотел бы получить некоторую помощь в том, чтобы внедрить эти услуги в контроллер, так что я могу проверить Это. Я уже много раз пробовал. https://docs.angularjs.org/tutorial/step_11 это выглядит легко, но не работает, он даже не вводит вещи или не делает? Я знаю, что в учебнике работает, но я не знаю, как и почему, и я не могу заставить его работать над моим проектом.

Любая помощь приветствуется: D

ответ

1

поэтому я решил мою проблему, проблема заключалась в том, что услуги были модуль, который я должен был вводить в тесте, что я не видел.

describe('Parecer Controllers', function(){ 

    beforeEach(module('spaSkeleton.parCCP')); 

    beforeEach(function() { 
     module('sigq.anosLetivos'); 
     module('sigq.unidadesOrganicas'); 
     module('sigq.cursos'); 
     module('sigq.relatorios'); 
     module('sigq.pareceres'); 
     module('restangular'); 
     module('ngMaterial'); 
    }); 

    var $scope; 
    var $controller; 
    var $mdToast, AnosLetivosService, UnidadesOrganicasService, CursosService, RelatoriosService, PareceresService, Restangular; 

    beforeEach(inject(function(_$controller_, _$q_, _AnosLetivosService_, _UnidadesOrganicasService_, _CursosService_, 
           _RelatoriosService_, _PareceresService_, _Restangular_, _$mdToast_) { 
     $scope = {}; 
     $mdToast = _$mdToast_; 
     Restangular = _Restangular_; 
     $controller = _$controller_; 
     AnosLetivosService = _AnosLetivosService_; 
     UnidadesOrganicasService = _UnidadesOrganicasService_; 
     CursosService = _CursosService_; 
     RelatoriosService = _RelatoriosService_; 
     PareceresService = _PareceresService_; 

     $controller('ParCCPCtrl', 
      { 
       '$scope': $scope, 
       'AnosLetivosService': AnosLetivosService, 
       'UnidadesOrganicasService': UnidadesOrganicasService, 
       'CursosService': CursosService, 
       'RelatoriosService': RelatoriosService, 
       'PareceresService': PareceresService, 
       '$mdToast': $mdToast 
      }); 
    })); 

    it('should make Blog menu item active.', function() { 
     expect(1).toEqual(1); 
    }); 
}); 

поэтому мне нужен весь этот код, чтобы проверить мой контроллер XD

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