Angular / 业力:未知提供者
Angular / Karma: unknown provider
我是 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'
]
假设您正在使用这个库https://github.com/grevory/angular-local-storage
没有为测试加载模块。
要么
angular.module('myApp.home', ['LocalStorageModule'])
将模块注入到您的模块中。
或尝试
beforeEach(module('LocalStorageModule'));
beforeEach(module('myApp.home'));
我是 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'
]
假设您正在使用这个库https://github.com/grevory/angular-local-storage
没有为测试加载模块。
要么
angular.module('myApp.home', ['LocalStorageModule'])
将模块注入到您的模块中。
或尝试
beforeEach(module('LocalStorageModule'));
beforeEach(module('myApp.home'));