web-dev-qa-db-ja.com

AngularJSテスト:Yeomanアプリでの分度器、カルマ、ジャスミン

私はこのヨーマンジェネレーターを使用します: https://github.com/Swiip/generator-gulp-angular

これは3つのテストアプリケーションをインストールします:Jasmine、Karma、Protractorこの記事によると( エンドツーエンドテストにProtractorまたはKarmaを使用する必要がありますか? )、以下を使用する必要があります。例えば単一のコントローラー。アプリ全体をテストし、自分のアプリを閲覧するユーザーをシミュレートする場合はProtactor。このブログによると( http://andyshora.com/unit-testing-best-practices-angularjs.html )ユニットテストにはJasmineを、エンドツーエンドの統合テストにはKarmaを使用します。

ジャスミンはテストが書かれ、他の2つがコードを実行する言語だと思いますが、それは正しいですか?また、最初に学ぶ/集中することがより重要なテストを書いたことがない場合はどうなりますか?

19
Andi Giga

Karmaはテストランナーなので、テストを実行します。 Jasmine は、テストを記述できるフレームワークです。

Angularjsでの私の意見では:

  • 必須ユニットテストサービス。ビジネスコードが存在するためです。
  • すべきですユニットテストコントローラー、ユーザーのアクションがあるからです。
  • may単体テストのカスタムディレクティブ(そのディレクティブを他のユーザーと共有する場合は、である必要があります

分度器は、E2Eテスト用に作成されています(実際のユーザーのようにナビゲーションをテストします)。 WebDriverJSとJasmineを組み合わせ、エンドツーエンドテスト(実際のブラウザーをシミュレートして実際のアクションを実行)をJasmine構文で記述できます。

この種のテストは、Webアプリでも非常に重要です。

特にプロジェクトの開始時に、すべてをテストするべきではありません。これらの種類のテストは、通常、高レベルのメンテナンスを伴います(つまり、画面を変更すると、テストの変更が必要になる場合があります)。

私がしていることは、クリティカルパスと機能をテストすることです。私は読書アプリを作ったので、私の場合、それはログイン、サインアップ、支払い、本へのアクセス、そしてリーダーへのアクセスでした。

45