mock-fidelity-lens

Lentille de revue conditionnelle : audite le câblage de mock côté consommateur dans les tests d’intégration selon quatre gates de fidélité — activée uniquement quand le diff touche un mock aval ou un test d’intégration qui en utilise un.

Quand elle s’active

Activée par software-engineer-reviewer uniquement quand le diff examiné touche :

Ce n’est pas une des lentilles de revue CORE. Elle rejoint le panel adverse conditionnellement, en tant que lentille de capacité.

Entrées

Sortie

{
  "lens": "mock-fidelity",
  "verdict": "pass | fail",
  "defects": [{ "id": "D<N>", "gate": "M<N>", "severity": "blocker | high", "location": "fichier:ligne", "description": "...", "suggestion": "..." }]
}

Gates

Gate Vérification Sévérité
M1 Stratégie résolue honorée (inprocess → double DI ; microcks → conteneur Microcks) high
M2 Mock effectivement câblé dans le test host (URL injectée ou DI remplacé) blocker
M3 Pas de fuite d’appel aval réel blocker
M4 Double la dépendance aval, pas le domaine propre du SUT high

Détail M1 : si testing.mocking.strategy: inprocess était en vigueur, le test doit utiliser un double en mémoire — pas un conteneur Microcks, et vice-versa.

Détail M2 : un mock créé mais non injecté dans le client du SUT (URL mock non définie via UseSetting, remplacement DI manquant) → blocker.

Invariants

Pourquoi cette forme

Un mock créé mais non câblé dans le client du SUT laisse silencieusement le vrai service être appelé, rendant le test non-déterministe. Chaque gate ferme un mode de défaillance à la frontière de transport.

« Replace a component that the SUT depends on with a test-specific equivalent. » — Meszaros, G., xUnit Test Patterns, 2007.

Voir aussi