モック検証の厳密性不足(setup/teardown粒度・緩い引数マッチャ・アサーション登録漏れ)は退行を見逃す
テスト
テスト設計
コードレビュー
ハマりどころ
モック
運用
モックを使ったテストは、検証が「実際に効いているか」を意識しないと、コードが壊れてもgreenになる。3つの典型的な穴:
- setup/teardownの粒度不一致: サブテストごとにsetupでモックを再生成する一方、モックの期待検証(AssertExpectations等)を行うteardownがスイート全体で1回しか走らない構成だと、正常系サブテストで期待検証が実行されず退行を見逃す。setupをサブテスト単位にしたらteardownもサブテスト単位に揃える。
- 緩い引数マッチャ: userID等の重要な引数を「任意値許容」でマッチさせると、誤った値で呼んでも通る。境界を固定したい引数は厳密一致にする。
- アサーション対象への登録漏れ: 新しく追加したモックをAssertExpectationsの対象セットに登録し忘れると、そのモックの呼び出し検証がまったく効かない。
レビューでは「このモック検証は、実装をわざと壊したら本当にredになるか」を基準に見る。