Hermetic Tests
Testing 🔴 SeniorDé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.