4

ディレクティブのテストに関する Vojtaのプロジェクトでは、このコードは何をしますか?

  // load the tabs code
    beforeEach(module('tabs')); 

タブコードをロードすると書かれていますが、なぜですか?tabs モジュールはここで次に定義されていませんか?

 var tabs = angular.module('tabs', []);

angular test で何をどのようにロードする必要があるかについて簡単に説明できますか?

このように、テストでこの関数を呼び出そうとしました

 beforeEach(module('utils')) ;

そして、私はこのエラーが発生します:

TypeError: Property 'module' of object [object Object] is not a function

また、このようにテンプレートを読み込もうとすると

beforeEach(module('templates/loadingBar.html')); 

このエラーが発生します:

Error: No module: templates/loadingBar.html 

私はプロセス全体について本当に混乱しています。

助けてくれてありがとう...

4

1 に答える 1

10

あなたがリストしたコード

var tabs = angular.module('tabs', []);

モジュールを作成tabsますが、それをロードするには、おそらくng-app="tabs"DOMの要素に何かを置きます。これにより、モジュールをロードし、アプリが依存関係を解決するために使用するインジェクターtabsでその定義を使用できるようにするように Angular に指示します。(詳細については、ブートストラップ ガイドを参照してください。)

テストではng-app、インジェクターを初期化したり、モジュールをロードしたりするディレクティブはありません。module関数(ファイルから存在するangular.mockangular-mocks.js)は、テストでこれを行います。Karma Jasmine または Mocha アダプターをテストにmodule使用する場合は、それを使用できるようになります。それ以外の場合は、angular.mock.module代わりに呼び出す必要がある場合があります。

于 2013-05-21T05:35:56.690 に答える