アプリケーション層テスト
CQRS アーキテクチャにおける Command/Query ハンドラー、バリデーション、ライフサイクル遷移をテストする。
Command/Query ハンドラーの単体テスト
- 各 Command ハンドラーが正しい副作用(DB更新、イベント発行)を生じること
- 各 Query ハンドラーが正しいデータを返すこと
- ハンドラー内のビジネスルール(認可チェック等)が適切に機能すること
バリデーションテスト(FluentValidation)
- 各バリデーションルールが正しく動作すること
- バリデーションエラーメッセージが適切であること
- 複合条件のバリデーション(例: 配偶者控除と配偶者特別控除の排他制約)
ライフサイクル遷移テスト
申告(Declaration)のライフサイクル遷移が正しく動作すること。
- 許可された遷移のみが成功すること
- 不正な遷移(例: Draft → Approved)が拒否されること
- 各遷移時のイベント発行・監査ログ記録
スナップショットテスト
CQRS スナップショット方式に基づく JSONB データの生成・復元をテストする。
- スナップショット生成時に全フィールドが正しくシリアライズされること
- スナップショットからの復元が元データと一致すること
- スキーマ進化(新フィールド追加)時の後方互換性
カスケード再計算テスト
依存する値が変更された際の再計算が正しく連鎖すること。
- 所得額変更 → 控除額再計算 → 税額再計算の連鎖
- 家族構成変更 → 人的控除再計算 → 税額再計算の連鎖
- 再計算の範囲が必要最小限であること(不要な再計算が発生しないこと)