テスト標準
AIが生成するテストコードを制約する規範セット。以下の3つのレイヤーで構成されます:
- unit-test-standards.md:ユニットテスト — AAA構造/Mockルール/アサーションスタイル/テスト分離
- contract-test-standards.md:コントラクトテスト — 受け入れシナリオの翻訳/三状態カバレッジ/レッド・グリーン
- test-data-standards.md:テストデータ — データファクトリー/Testcontainers/分離
ロードマトリックス
| タスク種別 | 必読ファイル |
|---|---|
| ユニットテストを書く | standards/unit-test-standards.md |
| インタフェースコントラクトテストを書く(ai-dev-workflow 4.2 と連携) | standards/contract-test-standards.md + standards/unit-test-standards.md |
| テストデータ/データベース統合テストを準備する | standards/test-data-standards.md |
| テストコードをレビューする | すべて(該当種別に応じて) |
コアルールクイックリファレンス
- テストは受け入れ基準である:アサーションの変更/テスト削除/@Disabledは禁止(コードをテストに合わせて変更してはならない)
- 1テスト1振る舞い、AAA構造。アサーションはAssertJの流れるようなスタイルで記述する
- テストメソッド名は英語のキャメルケース(
createOrderShouldReturn400WhenUserNotExist)とし、中国語/ピンインのメソッド名は禁止。テストケースの説明はJavadocに中国語で記述する - 依存関係はすべてモックし、実装の詳細はテストしない。Thread.sleepは使用しない
- コントラクトテストは三状態(正常/異常/境界)をカバーし、レッド・グリーンで進める
- テストデータはファクトリー化し、複雑なSQLの場合はTestcontainersで実際のデータベースを使用する
- テストは分離する:実行順序に依存せず、可変状態を共有しない
他のスキルとの関係
- ai-dev-workflow:4.2
/contract-testsコントラクトテストフローは、本スキルの contract-test-standards を参照する(フローはフロースキル、コード規範は本スキルに記述) - java-code-standards:Javaコード規範は本スキルを参照する(テスト作成時にロードされる)
- database-standards / comment-standards:直接の参照はない
使用要件
テストコードを生成する前に、「タスク種別 → ロードマトリックス」に従って規範を読み込むこと。生成後は、対応する規範のセルフチェックリストに沿って1項目ずつ確認する。コントラクトテストはレッド・グリーンで進めること。レッドの原因は「実装が存在しないこと」であって「テストの書き間違い」であってはならない。