tdd について
tddは、プロダクションコードより先に失敗するテストを書くことを求め、各段階を検証しながらRED-GREEN-REFACTORで進める開発skillです。テスト駆動開発を行うエージェントや開発者を対象としています。
主な機能
- 01技術スタックとテストフレームワークの特定
- 02失敗するテストを一度に一つ作成
- 03失敗理由が想定どおりか確認
- 04通過に必要な最小限のコードを実装
- 05テストスイート全体を実行
- 06テストを通したままリファクタリング
活用シーン
- 01テスト単位で機能を段階的に開発
- 02初回実行で通るテストの調査
- 03未テストのプロダクションコード変更の防止
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fusengine/ claude-plugins --skill tddインストール後、Claude Code で/tddを入力して読み込まれたか確認します。
詳細
TDD は Iron Law——失敗するテストなしにプロダクションコードを書かない——を、厳格な RED-GREEN-REFACTOR ループを通じて徹底します。すなわち、スタックとテストフレームワークを検出し、次の振る舞いに対する失敗するテストを 1 つ書き、それが*期待される*理由(構文エラーやフィクスチャの欠落ではなく)で失敗することを確認し、それを通す最小限のコードを書き、スイート全体がグリーンであることを確認し、グリーンを保ったままリファクタリングし、次の振る舞いのために繰り返します。
VERIFY ステップを飛ばすことは決してありません——初回実行でパスするテストは何も証明せず、受け入れるのではなく調査しなければなりません。
TDD スキル
まずテストを書きます。それが失敗するのを見ます。通すために最小限のコードを書きます。
Iron Law
失敗するテストなしにプロダクションコードを書いてはならない。
プロダクションコードのすべての行は、それなしでは失敗するテストによって正当化されなければなりません。 例外はありません。近道もありません。「後でテストしよう」もありません。
エージェントのワークフロー
1. DETECT -> Identify stack, test framework, existing test patterns
2. RED -> Write ONE failing test for the next behavior
3. VERIFY -> Run test, confirm it fails for the EXPECTED reason
IF the test fails for a DIFFERENT reason (syntax error, wrong import, missing fixture) → fix the test itself and re-run. Do NOT proceed to GREEN until the failure matches the intended behavior.
4. GREEN -> Write the SIMPLEST code that makes the test pass
5. VERIFY -> Run tests, confirm ALL pass (new + existing)
6. REFACTOR -> Clean up while keeping all tests green
7. REPEAT -> Next behavior = next failing test
重要: VERIFY ステップを決して飛ばさないでください。初回実行でパスするテストは何も証明しません。
RED-GREEN-REFACTOR サイクル
ルールと検証ステップを含む詳細なサイクルについては、references/red-green-refactor.md を参照してください。
リファレンスガイド
| トピック | リファレンス |
|---|---|
| RED-GREEN-REFACTOR サイクル全体 | red-green-refactor.md |
| よくある間違いと危険信号 | anti-patterns.md |
| スタックごとのテストコマンド | stack-commands.md |
クイックリファレンス: テストコマンド
| スタック | テストの実行 | ウォッチモード |
|---|---|---|
| React/Next.js | npx vitest run | npx vitest |
| Laravel | php artisan test | php artisan test --watch |
| Swift | swift test | - |
| 汎用 TS | bunx vitest run | bunx vitest |
| Go | go test ./... | - |
| Rust | cargo test | cargo watch -x test |
禁止される行為
- 失敗するテストより前にプロダクションコードを書いてはならない
- VERIFY RED ステップを飛ばしてはならない
- 初回実行でパスするテストを調査なしに受け入れてはならない
- 直接テストできるものをモックしてはならない
- RED フェーズで一度に 2 つ以上のテストを書いてはならない
- 現在のテストが要求する以上の機能を追加してはならない
コメント
Markdown 対応