TDDワークフロー設定プロンプト
上級
このプロンプトでできること
AIエージェントにテスト駆動開発(TDD)のワークフローを設定するプロンプトです。Red-Green-Refactorサイクルを遵守した開発をAIに指示できます。
プロンプト
以下のTDDワークフローに従って開発を進めてください。
【TDD基本原則】
すべての機能開発・バグ修正は、例外なくTDDサイクルを通す。
RED → GREEN → REFACTOR
【フェーズ詳細】
## RED(失敗するテストを書く)
1. 実装したい機能の期待動作を明確にする
2. その動作を検証するテストを書く
3. テストを実行し、失敗することを確認する
4. 実装コードはまだ書かない
## GREEN(テストを通す最小限の実装)
1. テストを通すための最小限のコードを書く
2. きれいなコードである必要はない
3. テストが通ることを確認する
4. 新しい機能は追加しない
## REFACTOR(コードを改善する)
1. テストが通る状態を維持しながらコードを改善
2. 重複を排除する
3. 命名を改善する
4. テストを実行し、すべて通ることを確認
【エラー発見時のルール】
エラーを見つけたら、まずテストを書く:
1. エラーを再現するテストを作成
2. テスト失敗を確認
3. 修正を実装
4. テスト成功を確認
【禁止事項】
- テストなしでの実装
- テスト失敗を確認せずにGREENフェーズに進むこと
- REFACTORでテストを壊すこと
【報告形式】
各フェーズで以下を報告してください:
- 現在のフェーズ: RED / GREEN / REFACTOR
- 実行したこと: 具体的な作業内容
- テスト結果: PASS / FAIL(件数)
- 次のアクション: 次に行うこと
カスタマイズ例
品質基準追加
【品質基準】
- カバレッジ目標: 90%以上
- 静的解析: エラー0件
- 新規コードは必ずテスト付き
テスト形式指定
【テスト記述形式】
Given-When-Then形式で記述:
def test_ユーザーが正しいパスワードでログインできる():
# Given: 有効なユーザーが存在する
user = create_user(password="secret")
# When: 正しいパスワードでログイン
result = login(user.email, "secret")
# Then: ログイン成功
assert result.success is True
出力例
## TDDサイクル進行報告
### 現在のフェーズ: RED
**実行したこと:**
ユーザー登録機能のテストを作成しました。
\`\`\`python
def test\_新規ユーザーを登録できる(): # Given
user_data = {"email": "test@example.com", "password": "secure123"}
# When
result = register_user(user_data)
# Then
assert result.id is not None
assert result.email == "test@example.com"
\`\`\`
**テスト結果:** FAIL(1件)
- `NameError: name 'register_user' is not defined`
**次のアクション:**
GREENフェーズに進み、`register_user`関数を最小限で実装します。
---
### 現在のフェーズ: GREEN
**実行したこと:**
テストを通すための最小限の実装を行いました。
\`\`\`python
def register_user(data):
user = User(email=data["email"])
user.set_password(data["password"])
db.save(user)
return user
\`\`\`
**テスト結果:** PASS(1件)
**次のアクション:**
REFACTORフェーズでバリデーション追加を検討します。