ホームページ  >  記事  >  ウェブフロントエンド  >  Angular での単体テストに関するインタビューの質問に答えられますか?

Angular での単体テストに関するインタビューの質問に答えられますか?

青灯夜游
青灯夜游転載
2021-06-08 10:50:121876ブラウズ

この記事では、Angular での単体テストに関する面接での質問をいくつか紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Angular での単体テストに関するインタビューの質問に答えられますか?

Angular のテストの種類と、それらはどのテスト フレームワークに基づいていますか?

Angular のテストには主に単体テスト (単体テスト) が含まれますエンドツーエンド テスト (e2e)。

  • 単体テスト: ジャスミンとカルマに基づく。 JasmineはAngular以外にも広く使われている汎用テストフレームワークで、Karmaはテスト設定などを管理するためのAngular固有のフレームワークで、指定したブラウザで簡単にテストコードを実行できます。モカとチャイもお選びください。
  • エンドツーエンド テスト (e2e): 分度器に基づいています。 protractor は、Angular 専用の e2e フレームワークです。 [関連チュートリアルの推奨事項: 「angular チュートリアル」]

カルマとは何ですか? Angular では何をするのでしょうか?

Karma は、ブラウザ環境でテスト コードに対してソース コードを実行するためのツールです。構成されたすべてのブラウザでのテストの実行をサポートします。コマンド ラインとブラウザで結果を同時に表示するか、開発者がどのテストが成功したか失敗したかを確認するために標準形式のレポートを入力します。 Karma はファイルも監視し、ファイルが変更されるたびにテストの再実行をトリガーできます。同時に、Karma はコード カバレッジ (コード カバレッジ) もカウントできます。
Angular プロジェクトのルート ディレクトリには、Karma を構成するためのファイル karma.conf があります。

ジャスミンとは何ですか? Angular では何の役に立つのですか?

Jasmine は、動作駆動開発 (略して BDD) と呼ばれるソフトウェア開発プラクティスをサポートする JavaScript テスト フレームワークです。これは、テスト駆動開発 (TDD) の特殊なスタイルです。

Jasmine と BDD は一般に、技術者以外の人でもテストの内容を理解できるように、人間が読める形式でテストを記述しようとします。

分度器とは何ですか?

protractor は、Angular のエンドツーエンドのテスト フレームワークです。実際のブラウザでテストを実行し、実際の人間のようにブラウザと対話します。個々の機能をテストする単体テストとは異なり、ここではロジック全体をテストします。 Protractor は、フォームに記入し、ボタンをクリックし、予期したデータとスタイルが HTML ドキュメントに表示されることを確認できます。

Karma と同様に、Protractor には、Angular プロジェクトのルート ディレクトリの protractor.conf に独自の構成ファイルがあります。

単体テスト単体テスト

#Angular の単体テストとは何ですか?

単体テストは、単一の機能、単一のコンポーネントを分離してテストするために使用され、分離性とスター速度によって特徴付けられます。この単体テストでは、アプリケーション内のすべてが正常であるとは言えませんが、単一のユニットまたは関数についてのみ、正常に動作することが保証されます。

Angular UT のベスト プラクティス

  • beforeEach() で使用されるコンテキストを初期化する;
  • の説明description()、it() は明確である必要があります。読みやすく、テストが失敗したときにすぐに見つけやすい;
  • after()、afterEach() を使用して、テストによって変更されたグローバル状態をリセットします;
  • 特定のテスト ケースごとに、次のことを行ってください。あまり複雑になりすぎないようにしてください。コードは 15 行以内であることが保証されています。

TestBed とは何か、またその機能は何ですか。

TestBed は、@NgModule テスト環境モジュールを構築するために使用される Angular テスト ツール セット (@angular/core/testing) です。

  • #TestBed.configureTestingModule を使用してテスト環境を準備できます

  • TestBed.createComponent を使用して、ターゲット コンポーネントをテストするためのテスト コンポーネントを作成します

#サービスをテストするときに他の依存関係に対処するにはどうすればよいですか? #TestBed を使用してユースケースを作成するには、依存関係をプロバイダーに追加します

TestBed.configureTestingModule({
  providers: [YourDependencyService]
});

エンドツーエンド テスト (e2e)

分度器に基づくと、テストコストは比較的高く、通常は晴れたケースをカバーできます。

プログラミング関連の知識について詳しくは、

プログラミング入門

をご覧ください。 !

以上がAngular での単体テストに関するインタビューの質問に答えられますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。