【发布时间】:2016-03-11 15:37:50
【问题描述】:
我一直在尝试测试我的控制器:
app.js
angular
.module('MyModule', [
'ui.router'
]);
angular
.module('MyModule')
.config(configFn);
configFn.$inject = ['$stateProvider'];
function configFn($stateProvider){
$stateProvider
.state('myState',{
url:'state',
views: {
'main' : {
templateUrl: 'src/views/view.html',
controller: 'MyCtrl',
controllerAs: 'ctrl',
resolve: {
DataResolve: ['MyService', function(MyService){
return MyService.getData();
}]
}
}
}
});
controller.js
angular
.module('MyModule')
.controller('MyCtrl', Controller);
Controller.$inject = ['DataResolve'];
/* @ngInject */
function Controller(DataResolve) {
var vm = this;
vm.data = DataResolve;
}
我的规格
controller_spec.js
describe('Controller', function(){
beforeEach(module('MyModule'));
beforeEach(inject(function($controller){
this.myCtrl = $controller('MyCtrl');
}));
it('Controller should be defined', function() {
expect(this.myCtrl).toBeDefined();
});
});
但是当测试运行时,我得到以下错误:
错误:[$injector:unpr] 未知提供程序:DataResolveProvider
我做错了什么?
【问题讨论】:
标签: angularjs testing angular-ui-router jasmine karma-runner