2015-01-27 1 views
15

Я новичок в тестирование в Угловом и найти трудно понять, как сделать простой тест на инъекции моего контроллера, получает ошибку:Угловой/Карма: неизвестный провайдер

Error: [$injector:unpr] Unknown provider: localStorageServiceProvider <- localStorageService 

Контроллер:

angular.module('myApp.home', []) 
.controller('HomeCtrl', ['$scope','localStorageService',function($scope,localStorageService) { 
// ... 
}]); 

Тест:

describe('myApp.home module', function() { 
    var $scope; 
    var localStorageService; 

    beforeEach(module('myApp.home')); 

    describe('home controller', function(){ 

     it('should ....', inject(function($controller,_$rootScope_,_localStorageService_) { 
     $scope = _$rootScope_.$new(); 
     localStorageService = _localStorageService_; 

     var headerCtrl = $controller('HomeCtrl',{"$scope" : $scope, "localStorageService" : localStorageService}); 
     expect(headerCtrl).toBeDefined(); 
     })); 

    }); 
}); 

В моей karma.conf.js я ссылка:

files : [ 
     'app/bower_components/angular/angular.js', 
     'app/bower_components/angular-route/angular-route.js', 
     'app/bower_components/angular-mocks/angular-mocks.js', 
     'app/bower_components/angular-local-storage/dist/angular-local-storage.js', 
     'app/js/controllers/*.js' 
    ] 

ответ

21

Предполагая, что вы используете эту библиотеку https://github.com/grevory/angular-local-storage

модуль не загружен для испытания.

Либо сделать

angular.module('myApp.home', ['LocalStorageModule'])

внедрить модуль в ваш модуль.

или попробовать

beforeEach(module('LocalStorageModule')); 
beforeEach(module('myApp.home')); 
+0

Спасибо, это было именно то, что происходит. – TMichel