💻 Claude Code入門 | 📖 7分

テスト駆動開発(TDD)をClaude Codeで実践する

TDDとは何か

テスト駆動開発(Test-Driven Development, TDD)とは、コードを書く前にテストを書く開発手法です。「テストが先、実装が後」という一見逆転した流れですが、これによりバグの少ない、設計の良いコードが書けるようになります。

TDDの3ステップサイクル

TDDは以下の3ステップを繰り返します。

ステップ内容
1. テストを書く🔴 Redまだ実装がないので、テストは失敗する(赤)
2. 実装を書く🟢 Greenテストを通す最小限のコードを書く(緑)
3. リファクタリング🔵 Refactorテストが通る状態を保ちつつ、コードを整理する

Claude CodeでTDDを実践する

Claude CodeはTDDの各ステップを強力にサポートします。

ステップ1: テストを先に書く(Red)

> ユーザー登録機能のテストを先に書いてください。
  以下の要件をテストしてください:
  - メールアドレスが有効な形式であること
  - パスワードが8文字以上であること
  - 同じメールアドレスで重複登録できないこと

Claude Codeが適切なテストフレームワーク(Jest, pytest, PHPUnit等)を使ってテストコードを生成します。

ステップ2: テストを実行して失敗を確認

> テストを実行してください

Claude Codeがテストを実行し、まだ実装がないため失敗することを確認します。

ステップ3: 実装を書く(Green)

> テストが全て通るように実装してください

Claude Codeがテストの要件に基づいて実装コードを書きます。テストという「仕様書」があるため、過不足のない実装が得られます。

ステップ4: リファクタリング(Refactor)

> テストが通る状態を保ったまま、コードをリファクタリングしてください

TDDの実践例:電卓関数

簡単な例で流れを見てみましょう。

# まずテストを書く
> add関数のテストを書いてください。
  - add(2, 3) は 5 を返す
  - add(-1, 1) は 0 を返す
  - add(0, 0) は 0 を返す
  - 数値以外が渡されたらエラーを投げる

# テスト失敗を確認
> テストを実行してください

# 実装を書く
> テストが通るようにadd関数を実装してください

# テスト成功を確認
> もう一度テストを実行して、全て通ることを確認してください

Claude CodeがTDDに向いている理由

  • テストと実装の一貫性: テストを書いたAIが実装も書くため、要件のブレが少ない
  • テスト実行の自動化: テスト実行コマンドをそのまま実行し、結果を解析できる
  • 失敗時の即座な修正: テストが失敗した場合、エラー内容を見て自動で修正を提案
  • リファクタリングの安全性: テストがあるため、リファクタリング後の動作確認が確実
💡 キーポイント: TDDは「面倒」と思われがちですが、Claude Codeと組み合わせると非常にスムーズに実践できます。テストという「仕様書」を先に書くことで、Claude Codeがより正確な実装を生成してくれます。まずは小さな関数からTDDを試してみましょう。