如果在index.html中包含angular-mocks.js,ngMock会自动包含自身。如何在AngularJS中自动加载模块而不指定它作为依赖
什么是最简单的方法来强制角度加载模块在测试模式,只需包括一个文件,而不必编辑任何模块的依赖关系。
如果在index.html中包含angular-mocks.js,ngMock会自动包含自身。如何在AngularJS中自动加载模块而不指定它作为依赖
什么是最简单的方法来强制角度加载模块在测试模式,只需包括一个文件,而不必编辑任何模块的依赖关系。
加载模块的唯一方法是调用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');
...
你可以创建自己的函数,预先考虑您的模块中实例化之前依赖的名单,但我很难相信THI s将有助于测试。相反,它将是错误的另一个来源(并且将导致可能“隐藏”依赖性错误)。
你不能这样做。没有办法自动化模块加载,因为您必须指定依赖关系树。 Angular-mocks只依赖于'ng'模块。 –
恐怕不是这样,angular-mocks.js通过将ngMock和ng模块移入模块数组来实现ngMock。虽然他们的实现对我来说看起来不是很干净(这个过程有很多支持代码),但我想知道是否有更好的方法。 – eddiec
“自动包含自身”是什么意思? ** [ngMocks](http://code.angularjs.org/1.2.9/angular-mocks.js)**使用'angular.module('ngMock',['ng'])...'加载本身。 – gkalpak