已更新:我没有使用任何模块加载程序,因为这是一个旧项目,嗯,所以我只是通过index.html
标签将所有依赖项导入了script
我的AngularJS具有这样的结构:
angular.module('app', ['LocalStorageModule', 'ngCookies', ...])
angular.module('app').controller('testController', function(){})
现在我想测试testController
,所以我开玩笑的UT代码:
require('./testController.controller')
describe('TestController', () => {
beforeEach(angular.mock.module('app'));
})
但是现在我得到一个错误:
Module 'app' is not available
这意味着我必须导入app.js
,但是如果导入app.js
,我也会得到
Failed to instantiate module LocalStorageModule due to: Module 'LocalStorageModule' is not available!
所以我必须在我的每个测试文件中导入我的所有依赖项(鲍尔安装了20个以上依赖项)?我认为这不是一个好方法。如何处理这个解决方案?导入我的bower安装的所有组件?
答案 0 :(得分:0)
问题似乎是angular.js依赖项注入。因为您在应用模块中声明了一些依赖项。您需要模拟您的应用模块,然后注入依赖项。
describe('TestController', () => {
beforeEach(
angular.mock.module('app')
);
let _localStorageModule;
let _ngCookies;
beforeEach(
inject((LocalStorageModule, ngCookies) => {
_localStorageModule = LocalStorageModule;
_ngCookies = ngCookies;
})
);
})