t.wada流テスト駆動開発。Red-Green-Refactorサイクルで機能を実装。トリガー: 「TDDで実装して」「テスト駆動で」「テストファーストで」「TDD」「Red-Green-Refactor」。TypeScript/JavaScript向け。Python向けTDDにはプロジェクトローカルのtdd-wada-styleスキルを使用。
和田卓人氏(t.wada)のTDD哲学に基づき、テストファーストで機能を実装するスキル。
「テストとは、動くことを証明するものではない。間違いを見つけるためのものだ。」 — t.wada
テストは設計行為 テストを書くことで、使いやすいAPIを設計する。テストが書きにくい = 設計が悪い兆候。
テストは仕様書 テストコードが最も正確なドキュメントである。コードの振る舞いを表現する。
小さく回す Red → Green → Refactor を短いサイクル(数分単位)で繰り返す。
Claude should use this skill when:
┌─────────────────────────────────────────┐
│ │
│ 🔴 RED → 失敗するテストを書く │
│ ↓ │
│ 🟢 GREEN → 最小限のコードで通す │
│ ↓ │
│ 🔵 REFACTOR → 設計を改善する │
│ ↓ │
│ (繰り返し) │
│ │
└─────────────────────────────────────────┘
目的: 次に実装する振る舞いを明確にする
例:
def test_空のリストを渡すと空のリストを返す():
# Arrange(準備)
input_list = []
# Act(実行)
result = sort_numbers(input_list)
# Assert(検証)
assert result == []
目的: テストを通す
例:
# 最初は仮実装でもOK
def sort_numbers(numbers):
return [] # まずこれでテストを通す
目的: 設計を改善する
ルール:
テストケースリストの例:
□ 空のリストを渡すと空のリストを返す
□ 1要素のリストはそのまま返す
□ 複数要素は昇順でソートされる
□ 重複要素があっても正しくソートされる
□ 負の数を含んでも正しくソートされる
Use TodoWrite tool to track test cases.
各テストケースに対して Red → Green → Refactor を実行:
🔴 Red: 失敗するテストを書く
pytest を実行して失敗を確認🟢 Green: 最小実装
pytest を実行してパスを確認🔵 Refactor: 改善
pytest を実行次のテストケースへ
test_空のリストを渡すと空のリストを返す()詳細は EXAMPLES.md を参照。
境界値とその前後をテスト:
代表値でテスト(全パターンは不要):
詳細は REFERENCE.md を参照。
# テスト実行
uv run pytest tests/unit -v
# 特定テスト実行
uv run pytest tests/unit/test_xxx.py::test_関数名 -v
# カバレッジ付き
uv run pytest tests/unit --cov=src --cov-report=term-missing
# Watch mode(TDD向け)
uv run ptw -- tests/unit -v
詳細なコマンドは REFERENCE.md を参照。
When providing TDD guidance:
TDD実践が成功したと言える基準: