我用karma + jasmine写测试。看看这个:
describe("users module", function(){
var scope, controller;
beforeEach(function () {
module('users');
});
it("should work", function(){
});
});
上面的代码正常工作,我得到了这个输出
PhantomJS 2.1.1 (Linux 0.0.0): Executed 1 of 1 SUCCESS (0.038 secs / 0.001 secs)
我真正需要做的是测试模块控制器。所以我补充说:
describe("users module", function(){
var scope, controller;
beforeEach(function () {
module('users');
});
describe("Users list", function(){
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('ctrl', {
'$scope': scope
});
}));
it("should work", function(){
});
});
});
当我添加第二个beforeEach
块时,我得到注入错误。错误转储是巨大,它是这样开始的:
Error: [$injector:modulerr] http://errors.angularjs.org/1.5.7/$injector/modulerr?p0=users
我试图尽可能地干掉代码,但即使是以下内容也会导致相同的错误:
describe("users module", function(){
var scope, controller;
beforeEach(function () {
module('users');
});
describe("Users list", function(){
beforeEach(inject(function () {
}));
it("should work", function(){
});
});
});
我的代码出了什么问题?
== EDIT ==
如果我切换到非缩小角度版本,我会得到一个可读的错误转储,如下所示:
public/src/bower_components/angular/angular.js:4632:53
forEach@public/src/bower_components/angular/angular.js:321:24
loadModules@public/src/bower_components/angular/angular.js:4592:12
createInjector@public/src/bower_components/angular/angular.js:4514:30
workFn@public/src/bower_components/angular-mocks/angular-mocks.js:3067:60
loaded@http://localhost:9876/context.js:151:17
答案 0 :(得分:1)
原来我拼错了模块依赖。
课程:如果有角色说创建模块users
时遇到了麻烦,那么这很可能是真的,而你必须先调查该错误。