index.html に angular-mocks.js を含めると、ngMock はそれ自体を自動的に含める魔法を実行します。
ファイルをインクルードし、モジュールの依存関係を編集する必要がないだけで、angular にモジュールをテスト モードでロードさせる最も簡単な方法は何ですか。
index.html に angular-mocks.js を含めると、ngMock はそれ自体を自動的に含める魔法を実行します。
ファイルをインクルードし、モジュールの依存関係を編集する必要がないだけで、angular にモジュールをテスト モードでロードさせる最も簡単な方法は何ですか。
モジュールをロードする唯一の方法は、 を呼び出すこと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');
...
インスタンス化する前に依存関係のリストにモジュールを追加する独自の関数を作成することもできますが、これがテストに役立つとは思えません。それどころか、これはもう 1 つのエラーの原因になります (依存関係エラーが「隠れる」可能性があります)。