tdd について
tddは、振る舞いごとに実装と検証を進めるテスト駆動開発のスキルです。本番コードより先に失敗するテストを書き、最小限の実装、検証、リファクタリングを行います。
主な機能
- 01厳密なRED-GREEN-REFACTORサイクル
- 02失敗するテストを1つ先に作成
- 03失敗理由が想定どおりか検証
- 04実装後にテスト全体を実行
- 05複数スタックのテストコマンド
活用シーン
- 01振る舞い単位で機能実装を進める
- 02テストが意図した動作を確認するか検証
- 03テストを通したままリファクタリング
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fusengine/ agents --skill tddインストール後、Claude Code で/tddを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/anti-patterns.mdred-green-refactor.mdstack-commands.md詳細
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 対応