通过包含文件而不必编辑任何模块依赖项,强制角度在测试模式下加载模块的最简单方法是什么。
答案 0 :(得分:2)
加载模块的唯一方法是调用angular.module(...)
。 ngMocks 通过调用
angular.module('ngMock', ['ng']).provider(...).config(...);
您无需将模块声明为加载它的依赖项。您只需在其脚本中加入angular.module('<moduleName>', [<moduleDependencies>...]);
即可。
如果您的意思是“如何ngMock
自动添加到使用window.module
或angular.mock.module
加载的任何模块的依赖关系列表中,那是因为ngMocks
创建了自定义注入器,这样它就会获取依赖项列表并预先'ngMock'
:
window.inject = angular.mock.inject = function() {
...
return isSpecRunning() ? workFn() : workFn;
...
function workFn() {
var modules = currentSpec.$modules || [];
modules.unshift('ngMock'); // <-- this line does the trick
modules.unshift('ng');
...
您可以创建自己的函数,在实例化之前将模块添加到依赖项列表中,但我几乎不相信这有助于测试。相反,它将是另一个错误源(并且可能导致可能“隐藏”依赖性错误)。