Angular/Карма: неизвестный провайдер
Я новичок в тестировании в Angular и затрудняюсь понять, как сделать простой тест на мои инъекции контроллера, получив ошибку:
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'
]
Ответы
Ответ 1
Предполагая, что вы используете эту библиотеку https://github.com/grevory/angular-local-storage
Модуль не загружен для теста.
Либо сделайте
angular.module('myApp.home', ['LocalStorageModule'])
чтобы ввести модуль в ваш модуль.
или попробуйте
beforeEach(module('LocalStorageModule'));
beforeEach(module('myApp.home'));