5

Google Maps API v3 (距離の計算、マップ内のマーカーの作成など) を多用する AngularJS アプリケーションの単体テストを作成する必要があり、Google マップを使用する機能を単体テストできるように、何らかの方法でマップ キャンバスを作成またはモックする必要があることを知っています。 API を使用してそのキャンバスにマーカーを作成しますが、その方法がわかりません。また、Google Maps API に基づいたアプリケーションを (できれば AngularJS/Jasmine を使用して) 単体テストする方法に関する適切なチュートリアル/リソースを見つけることができませんでした。

このような単体テストの実際の例 (最も単純なものであっても) は大歓迎です。

4

1 に答える 1

7

上記のコメントから、次の情報が必要なようです (無視しないでください): そのため、各部分を説明するよりもはるかに優れた仕事をする多くの記事をリンクするつもりです.

Angular は依存性注入がすべてです。単体テストを行う場合、依存性注入は不可欠です。完全を期すために、依存性注入が何であるかを知らないと仮定し、簡単な説明を提供します (既にこれを知っている場合はご容赦ください)。口論。依存関係は、それが含まれるコードのブロックの外部にあるコードになります。これが、 Angularでコントローラに $scope を含める必要がある理由です。単体テストでは、これらのオブジェクトをモックアップして渡すことができるため、制御された方法でテスト結果を確認できます。

コントローラーで外部コード (Google Maps API、Facebook API など) を使用する場合は、そのコードをサービスにラップしてコントローラーに挿入することで、そのコードを挿入する必要があります

また、DOM 操作 (Google Maps API で new Map() によって行われることなど) をディレクティブで行う必要があるため、実際のマップ ピースのディレクティブを作成することもできます。次に、ディレクティブをテストします。ディレクティブのテストに関するガイダンスについては、Github リポジトリにある Angular のディレクティブ テストを例として参照することをお勧めします。基本的に、ディレクティブを $compile し、それを操作した結果をテストします。

于 2012-12-03T14:22:40.647 に答える