我有角度脚本post.js并测试它post_test.js。
我的post.js
文件
var Post = angular.module('Post', []);
Post
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/post', {
controller: 'PostCtrl',
templateUrl: 'src/posts/partials/post.html'
})
;
}]);
和我的post_test.js
文件:
'use strict';
describe('Post module', function() {
beforeEach(module('Post'));
describe('Post controller', function(){
it('should ....', inject(function($controller) {
//spec body
var PostCtrl = $controller('PostCtrl');
expect(PostCtrl).toBeDefined();
}));
});
});
在karma.conf.js
我加载
files: [
'app/components/angular/angular.js',
'app/components/angular-route/angular-route.js',
'app/components/angular-mocks/angular-mocks.js',
'app/app.js',
'app/src/**/*.js' // post.js, post_test.js
],
一切似乎都没问题,但是角度会返回此错误:
Error: [$injector:modulerr] Failed to instantiate module Post due to:
Error: [$injector:unpr] Unknown provider: $routeProvider
我不知道为什么。我在angular-route.js
之前加载post.js
。我检查过并正确加载。在定义alert(1)
之前我已经放了$routeProvier
,我在控制台中看到了它。所以这个文件正确加载,但在下一个文件 - 测试文件中它仍然无法正常工作。
答案 0 :(得分:1)
ngRoute
模块也应加载。
替换:
var Post = angular.module('Post', []);
使用:
var Post = angular.module('Post', ['ngRoute']);