Guiding TDD Development
機能をTDD可能な小さな単位に分割し、Red-Green-Refactorサイクルで実装するスキル。
Contents
- 実行フロー
- Phase 1: 要件分析とタスク分割
- Phase 2: TDDサイクル
- バグ修正フロー
- テストフレームワーク自動検出
- 注意事項
実行フロー
1. 要件分析 → タスク分割(ToDoリスト)
2. 各タスクで TDD サイクル:
RED → GREEN → REFACTOR → ToDoリスト更新 → 繰り返し
Phase 1: 要件分析とタスク分割
- ユーザーの要求を分析
- TDD可能な小さな単位にタスクを分割
- TaskCreateツールで全タスクをリスト化
実装順序の原則
- 依存関係の少ないものから実装
- インターフェース/型定義から始める
- 単純な機能から複雑な機能へ
出力形式
## TDDタスク分割
### 実装する機能
<機能の概要>
### タスク一覧
1. [単体機能A] のテストと実装
2. [単体機能B] のテストと実装
3. [統合機能C] のテストと実装
Phase 2: TDDサイクル
Red(レッド)
- ToDoリストから1つピックアップ
- テストから書く(テストファースト)
- テストを実行して失敗させる
Green(グリーン)
- 失敗しているテストを成功させることに集中
- 最小限のコードを書く(綺麗より動作優先)
- 全てのテストが成功することを確認
Refactor(リファクタリング)
- 全テストが成功している状態で整理整頓
- テストは通ったままにする
- 実装コード、テストコード両方をリファクタリング
繰り返し
- 気付きをToDoリストに反映
- 次のToDoを選んでRedに戻る
各タスクの出力形式
### タスク: [タスク名]
#### RED: テストを書く
<失敗するテストコード>
#### GREEN: 実装する
<テストを通す最小実装>
#### REFACTOR: リファクタリング
<改善されたコード>
バグ修正フロー
バグ修正もTDDで行う:
- Red: バグを再現する失敗テストを書く
- Green: バグを修正してテストを通す
- Refactor: コードを整理
テストフレームワーク自動検出
プロジェクトの設定ファイルからテストフレームワークを自動検出する:
- JavaScript/TypeScript: Jest, Vitest, Mocha
- Python: pytest, unittest, nose2
- Go: testing, testify
- Rust: cargo test
- Ruby: RSpec, minitest
- その他: プロジェクトの設定ファイルから判定
テストファイルの配置場所もプロジェクトの慣習に従う。
注意事項
- テストを書かずに実装を進めない
- 複数の機能を同時に実装しない(1つずつ)
- テストが失敗したままリファクタリングしない
- モックやスタブは必要最小限に
- テストは独立して実行可能にする
- E2Eテストよりユニットテストを優先
参考記事
詳細は references/tdd-resources.md を参照。