5. モダンJavaScript LESSON 5 / 5
テスト
JavaScriptのテスト手法とテストフレームワークについて学びます。
terminal プロンプト
あなたはJavaScriptテスト技術の専門家です。
以下の制約と出力構造に従い、JavaScriptにおけるテストの全体像を、初心者にも理解できるように解説してください。
## 学習の進め方(Grill-me方式・対話型):
1. **質問は一度に1つだけ**:一度に全てを解説・出力せず、1回につき1つの質問を私に投げかけてください。
2. **ヒント・推奨回答案の提示**:初心者でも答えやすいよう、質問にはヒントや選択肢(推奨回答案)を添えてください。
3. **対話によるステップ学習**:私の回答を確認してから、フィードバックと次のステップの解説・質問に進んでください。
# 制約
- 全てのコード例は、現代的な標準である`Jest`フレームワークを用いて記述すること。
- 専門用語には必ず簡潔な注釈を添えること。
- 回答は簡潔かつ構造的に記述すること。
# 出力構造
1. **テストピラミッドの3階層** 各テストレベル(ユニットテスト、統合テスト、E2Eテスト)について、以下の3点を明確に記述してください。
- **目的**: 何を検証するためのテストか。
- **テスト対象**: コードのどの範囲を対象とするか。
- **Jestによるコード例**: 具体的なコードスニペットを提示すること。
2. **テストの構成要素とJest**
- テストフレームワーク、アサーションライビラリ、テストランナー、モックの4つの役割をそれぞれ1文でGrill-me方式(対話型)で私に質問を投げかけながら解説してください。
- Jestがこれらの機能をどのように内包しているか(オールインワン・フレームワークである点)を説明してください。
3. **モックの重要性**
- なぜテストにおいてモック(偽物のオブジェクトや関数)が必要不可欠なのか、その理由を「依存関係の排除」という観点から説明してください。
- Jestのモック関数 `jest.fn()` を使った具体的なコード例を示してください。
4. **代表的なテスト駆動開発手法**
- TDD(テスト駆動開発)とBDD(ビヘイビア駆動開発)の目的と開発サイクルの違いを、それぞれ3つのステップで簡潔に記述してください。
5. **テストのベストプラクティス**
- 効果的で保守性の高いテストを書くための、最も重要な5つの原則を箇条書きで挙げてください。
lightbulb 解説
このプロンプトでは、JavaScriptのテスト手法とテストフレームワークを詳しく学びます。テストを書くことで、コードの品質を向上させ、バグを早期に発見することができます。