| name | test-first-development |
| description | コードの追加・変更をテストファーストで進めるときに使う。red -> green -> refactor の順序を守り、実装前にテストを書くことを指示する。 |
テストファースト開発
目的
コードを追加・変更するときは、期待する振る舞いを先にテストで表現し、red -> green -> refactor の順序で安全に実装する。
使う場面
- 新しい機能を追加するとき。
- 既存の振る舞いを変更するとき。
- バグ修正で再発防止テストが必要なとき。
- 仕様や期待結果をテストで明確にできるとき。
手順
- 期待する振る舞いを確認し、最小のテストケースを決める。
- Red: 実装前にテストを追加または更新し、そのテストが失敗することを確認する。
- Green: テストを通すために必要な最小限の実装を行う。
- Refactor: テストが通った状態を保ちながら、重複、命名、責務、読みやすさを改善する。
- 関連する既存テストや軽量な検証を実行し、変更範囲に破壊的影響がないことを確認する。
守ること
- テストを書ける変更では、実装より先にテストを書く。
- 失敗を確認できないテストは、テストとしての意味を見直す。
- 実装はテストを通すための最小差分から始める。
- リファクタでは振る舞いを変えない。振る舞いを変える必要がある場合は、先にテストを更新する。
- テストがないリポジトリでは、既存方針に沿った最小の検証方法を選び、必要に応じて
python -m compileall などの軽量検証を使う。