如果在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