Hermetic Tests

Testing 🔴 Senior

Definition

Tests completement auto-contenus sans aucune dependance externe (reseau, API tierces, horloge systeme). Tout est controle et reproductible a 100%.

Analogie

Comme un laboratoire en salle blanche : l'environnement est totalement controle, rien de l'exterieur ne peut influencer le resultat.

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 acces reseau.

Anti-pattern

Appeler de vraies API tierces dans les tests, les rendant dependants de la disponibilite externe.
#testing#principle#senior