Hermetic Tests

Testing 🔴 Senior

Définition

Tests complètement auto-contenus sans aucune dépendance externe (réseau, API tierces, horloge système). Tout est contrôlé et reproductible a 100%.

Analogie

Comme un laboratoire en salle blanche : l'environnement est totalement contrôle, rien de l'extérieur ne peut influencer le résultat.

Exemple de code

// Hermetique : controle du temps
vi.useFakeTimers();
vi.setSystemTime(new Date('2024-01-01'));

// Hermetique : mock reseau
const server = setupServer(
  http.get('/api/data', () => HttpResponse.json({}))
);
// Aucune requete reelle ne sort

Cas d'usage

Pour les tests en CI/CD qui doivent fonctionner identiquement sur n'importe quelle machine sans accès réseau.

Anti-pattern

Appeler de vraies API tierces dans les tests, les rendant dépendants de la disponibilité externe.
#testing#principle#senior

← → au clavier pour passer d'une fiche à l'autre