テストがない既存の関数に、単体テストを追加するためのプロンプトです。まずテストケースを表で洗い出してからコードを書く流れにしているので、「テストはあるけれど大事なケースが漏れている」状態を防げます。境界値や異常系など、見落としやすいケースを重点的に確認します。
プロンプト本文
次の関数に対する単体テストを作成してください。
## 対象コード
```{言語}
{テストしたい関数・クラスを貼り付け}
```
## 前提
- 言語とテストフレームワーク:{例:TypeScript / Vitest、Python / pytest}
- この関数の仕様・期待する動作:{分かる範囲で。コメントや仕様書の内容}
- 外部依存(DB・API・日時など):{モックすべきもの}
## 手順
1. 仕様とコードから、テストすべき観点を洗い出す
2. テストケースを表にする:ケース名/入力/期待する結果/観点(正常系・境界値・異常系)
3. 表の内容をテストコードにする
## ルール
- 境界値(0、空文字、最大値、null/undefined、日付の月末・うるう年など)を必ず検討する
- 仕様が不明な挙動は、テストを書く前に「仕様確認が必要」として質問する
- 実装の内部構造ではなく、入力と出力(振る舞い)をテストする
- テスト名は、何を確かめているか日本語または英語で分かるようにする
## 出力
1. テストケース一覧表
2. テストコード
3. このテストでは確認できていないこと
使い方
テストしたい関数と、使っているテストフレームワークを入力します。仕様書やコメントがあれば一緒に貼ると、仕様に沿ったテストになります。
CursorやClaude Codeなどのコーディングツールで使う場合は、対象ファイルを指定して同じ指示を出すと、プロジェクトのテスト規約に合わせやすくなります。
出力例
【入力】TypeScript / Vitest/関数:calcShippingFee(weightKg, prefecture)(3kg以下は一律、超えると1kgごと加算、離島は別料金)
【出力イメージ】
| ケース名 | 入力 | 期待する結果 | 観点 |
| ちょうど3kg | 3, "東京都" | 基本料金 | 境界値 |
| 3.01kg | 3.01, "東京都" | 基本料金+1kg分 | 境界値 |
| 重量が負の数 | -1, "東京都" | エラー | 異常系 |