1. テストが失敗するまでは、プロダクションコードを書いてはならない。
定義
**1. テストが失敗するまでは、プロダクションコードを書いてはならない。**は、正常値と失敗を呼出し側へ伝え、回復または中断を選ばせる仕組みである。対象、前提、入力、結果を区別して捉える。
仕組みと具体例
入力違反と一時的な通信失敗では回復戦略が異なるため、型やエラーコードで区別する。実際に適用するときは、通常時だけでなく境界値、失敗、並行実行、外部依存の変化が結果へどう影響するかを追跡する。
実践と検証
握りつぶさず文脈を保って伝播し、境界で利用者向け応答と内部ログへ変換する。期待する結果を観測可能な条件で記述し、最小の例から始めて異常系を追加する。自動化する場合も、基準自体が妥当かをレビューする。
トレードオフ
この手法の導入は一貫性と再現性を高める一方、設定、抽象、運用対象を増やす場合がある。適用範囲を広げる前に、解決するリスクと維持コストを比較する。例外は暗黙にせず、理由、期限、代替策を記録する。