我一直在尝试编写一个简单的规范,但是"无法加载模块"是我启动Karma时得到的错误。我有一个完整的AngularJs REST应用程序,它在所有工厂服务中都有相同的模块名称。模块名称是" app" ..在一个js文件中它没有& #39; t要求任何模块作为依赖项,但在其他文件中,它需要一些内置的角度js模块,例如' ngRoute' ..
所以我做的是,在karma.conf.js中我包含了所有带有angular.module文本的js文件...大多数js文件都有相同的模块名称" app"以及在内置模块中使用的一些js文件
现在来看规范...当我尝试包含一个模块" app"在beforEach块中并运行测试用例...我收到错误说"模块app无法加载,可能需要一些依赖作为第二个参数"。
所以我猜他甚至可能需要其他js文件中存在的内置依赖模块,所以我将这些模块名称作为我的spec文件中的第二个参数传递..
beforeEach(function(){
module('app',['ngRoute',......]);
});
即使那个没有成功。上面的beforEachBlock只是一个例子,并没有使用它。只是一个问题要理解.. .Below是我使用的样本规范
spec.js
describe('Factory Service Testing', function(){
var familyService;
beforeEach(function(){
module('app');
});
beforeEach(inject(function(familyService){
familyService=familyService;
}));
it('Testing a Family', function(){
/*
*
* some Code
*
* */
});
});
FactoryService.js
(function() {
'use strict';
angular.module('app')
.factory('deepak', deepak);
deepak.$inject = ['$rootScope', '$http', '$q', 'FamilyServices'];
}());
得到以下错误
Chrome 50.0.2661(Windows 7 0.0.0)错误 未捕获错误:[$ injector:nomod]模块' app'不可用!您要么错误拼写了模块名称,要么忘记加载 它。如果注册模块,请确保将依赖项指定为第二个参数。
Karma.conf.js文件
files: [
'node_modules/angular/angular.js',
'node_modules/angular-mocks/angular-mocks.js',
'app/deep.js',
'app/*.js', -- >Path contains my Factory service
'tests/*.js' --->Path contains the spec file
],
我没有找到模块未找到错误,如果我只是模拟beforEEach块中的模块,,,但如果我试图模拟工厂服务然后我得到模块未找到错误