導入
**TDD(テスト駆動開発)**は「実装より先にテストを書く」開発手法です。**Red(失敗するテスト)→ Green(通す最小実装)→ Refactor(整える)**のリズムで、正しく動く証拠を積み上げながら進みます。
図解
flowchart LR
R["Red<br/>失敗するテストを書く"] --> G["Green<br/>通す最小実装"]
G --> RF["Refactor<br/>コードを整える"]
RF --> R
style R fill:#ffebee
style G fill:#e8f5e9
サンプル
// テストは「入力→期待される出力」を確認するコード。まずこれを書く(Red)
// 次に IsEven を実装して通す(Green)
Assert(IsEven(4) == true, "4は偶数");
Assert(IsEven(7) == false, "7は奇数");
Console.WriteLine("全テスト成功");
bool IsEven(int n) => n % 2 == 0; // テストを通す実装(Green)
void Assert(bool condition, string name)
{
if (!condition) throw new Exception($"FAIL: {name}");
}
- 先に「期待する結果」をテストとして書く(この時点では実装がなく失敗=Red)
- テストを通す最小限の実装を書く(Green)
- 動作を保ったままコードを整理する(Refactor)
演習
Assert(Triple(3) == 9, "3の3倍は9");
Assert(Triple(0) == 0, "0の3倍は0");
Console.WriteLine("全テスト成功");
// TODO: 上のテストを通す Triple メソッド(引数を3倍して返す)を実装してください
void Assert(bool condition, string name)
{
if (!condition) throw new Exception($"FAIL: {name}");
}
___
- 期待される出力:
全テスト成功
ヒント1を見る
int Triple(int n) => n * 3;
ヒント2を見る
テストが要求する仕様(3倍)をそのまま実装します
まとめ
- TDDは実装より先にテストを書く
- Red(失敗)→ Green(通す)→ Refactor(整える)のリズム
- 「正しく動く証拠」を積み上げながら進める
次回: 実務のテストフレームワークxUnitの記法です。