💻 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を試してみましょう。