このコースでは、ウェブ用のテストの概要と探索について説明します。
このコースで学習する内容は次のとおりです。
- テストの基礎
- 自動テストと手動テスト
- テストを実施する場所と方法
- ベスト プラクティス
- 何をテストすべきか、誰に責任があるのか、目的そのものとしてではなく、目的を達成するために手段をテストすることを検討する方法など、テストの理念。
このコースには、学習に役立つ簡潔で実用的なサンプルコードも含まれています。
コースのスコープには、Node.js などの環境で実行される、フロントエンドの JavaScript とドキュメント モデル、バックエンドでのライブラリ テストが含まれます。テストの経験はありませんが、JavaScript の基礎知識と Node.js などに関する経験が必要です。初心者にも経験豊富なデベロッパーにも適しています。
ほとんどのテスト フレームワークとツールは共通の言語を共有しているため、Learn Testing では一般的な方法でテストを行います。具体的に説明することが重要な場合は、人気が高まっているテスト フレームワーク Vitest を使用し、React または Lit を使用して記述されたウェブのコンポーネントをテストする方法を紹介します。この選択について詳しくは、付録をご覧ください。
このコースは最初から最後まで進めることができますが、特定のトピックのリファレンスとして使用することもできます。必要に応じて、コース内のリソースにリンクしています。
主な内容は次のとおりです。
テストを開始する
テストとは
ここでは、JavaScript でのテストの実践的な例など、テストの概要を説明します。また、各テストの規模についても紹介します。
テストが実行される場所
テストは、生産性を高め、ソフトウェアを効率的に作成するのに役立ちます。コマンドラインを使用して手動で実行することもできますが、自動プロセスまたはビルドシステムの一部として実行することもできます。
テスト環境
Node などのランタイム ツールは汎用コード向けです。ブラウザのテストコードは、エミュレートされた環境で実行することも、ブラウザのテスト用に設計されたフレームワークを使用して実行することもできます。
自動テストの種類
主にスケールに対応するテストタイプの一般的な分類について学習する。重要なのは、テストタイプは厳密な定義がなく、ニーズに応じて変更されるということです。
テスト項目とアプローチ
厳格なテストを適用するためにコードベースの最も重要な部分を特定することは、難しい決断になる可能性があります。このモジュールでは、目的に向けた手段であるテストの考え方と、テスト用のコードを評価する方法を紹介します。
コンポーネントのテストの実践
この実践的なモジュールでは、理想的とは言えない React コンポーネントをテストする方法を学びます。ここでは、fetch()
で作成したネットワーク トラフィックをインターセプトする、外部依存関係をモックする、React の Context
を使用してテスト用にカスタムコードを提供するという 3 つの例で Vitest を使用します。
静的分析
TypeScript や ESLint などのツールを使用したテスト方法は十分に確立されていませんが、自動チェックの一種である可能性があります。このモジュールでは、これらの代替ツールについて説明します。
アサーションとその他のプリミティブ
仕事のツール
JavaScript で記述するすべてのテストで主に使用される、test()
や assert
など、ほとんどのテスト ライブラリまたはフレームワークに共通するプリミティブについて説明します。
近日提供予定
- テストでよくある問題を回避する
- ダブルスをテストする
- テスト ライブラリとユーティリティ
- テスト フレームワークを決定する
このセクションの残りの部分では、テスト フレームワークとテスト ライブラリ、使用方法、使用するツールの決定方法について詳しく説明します。
近日提供予定: 問題ドリブン テスト
ウェブテストに関する一般的な課題に取り組むためのパターンを学びます。
近日提供予定: 自動テストの実践
このセクションでは、Next.js で構築した e コマースサイトをテストする方法を紹介します。コードを確認することで、自分で学習することもできます。コンポーネントをテストする方法、外部サービス(支払いやテストなど)を使用する方法、オプションのログインページがあるサイトでエンドツーエンドのテストを作成する方法について説明します。
近日提供予定: テストの理念
テストはエンジニアリングの課題ですが、テストの対象、責任者、ベスト プラクティスを知ることは、開発チームにとっても難しい課題です。
近日提供予定: テスト可能なコードの記述
このコースでは、現状のままでコードをテストするためのガイダンスを提供しますが、チームはコードのテストを容易にするためにさまざまなパターンを採用できます。このセクションでは、いくつかの方法について説明します。