test-first について
Red-Green-Refactor サイクルを用いるテストファースト開発スキルです。テスト構成、境界条件の網羅、信頼性と保守性を高める実践を扱います。
主な機能
- 01Red-Green-Refactor ワークフロー
- 02正常系と境界条件の網羅
- 03Arrange-Act-Assert 構成
- 04独立性と明確さを備えたテスト
- 05高速なユニットテストの指針
活用シーン
- 01失敗するテストから機能開発を始める
- 02境界値とエラー動作を確認する
- 03一つの概念ごとにテストを整理する
- 04保守しやすいユニットテストを維持する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ s-hiraoku/ synapse-a2a --skill test-firstインストール後、Claude Code で/test-firstを入力して読み込まれたか確認します。
詳細
テストファースト開発スキル
テストファースト開発(TDD)では、事前に定義した特定の要件を満たすコードを記述することで、品質と設計を向上させます。
TDD のワークフロー
- Red:小さな機能に対する失敗するテストを記述します。
- Green:テストを通すために必要な最小限のコードを記述します。
- Refactor:テストが成功した状態を維持しながら、コードを整理します。
テスト設計の原則
1. 包括的なカバレッジ
- 通常のケース:想定される「ハッピーパス」の動作をテストします。
- 境界値:有効な範囲の端にある入力をテストします(例:0、max_int、空文字列)。
- エッジケース:通常とは異なる、または極端な条件をテストします(例:ネットワークタイムアウト、ディスク容量不足、null 値)。
- エラー処理:システムが適切に失敗し、適切なエラーメッセージを返すことを確認します。
2. 構成(Arrange-Act-Assert)
明確で保守しやすいテストにするため、AAA パターンに従います。
- Arrange:必要な事前条件と入力を準備します。
- Act:テスト対象の関数またはメソッドを実行します。
- Assert:結果が期待どおりであることを確認します。
ベストプラクティス
- テストごとにアサーションを 1 つ:各テストケースでは、1 つの概念をテストすることを目指します。
- 説明的な命名:テストには内容が明確に分かる名前を付けます(例:
test_should_reject_invalid_api_key)。 - 独立性:テスト同士が依存せず、特定の実行順序にも依存しないようにします。
- 高速な実行:頻繁な実行を促すため、単体テストを高速に保ちます。
コメント
Markdown 対応