Test Double
Testing 🟡 MidDefinition
Terme generique pour tout objet utilise a la place d'une dependance reelle dans un test. Comprend 5 types : Dummy, Stub, Spy, Mock et Fake.
Analogie
Comme une doublure au cinema : elle remplace l'acteur principal pour les scenes dangereuses, chaque type de doublure a un role precis.
Exemple de code
// Dummy: juste pour remplir un parametre
const dummyLogger = { log() {} };
// Stub: retourne une valeur fixe
const stubApi = { getUser: () => ({ name: 'Alice' }) };
// Spy: enregistre les appels
const spy = vi.fn();
// Mock: spy + comportement programme
// Fake: implementation simplifiee (in-memory DB)
Cas d'usage
Pour isoler l'unite testee de ses dependances (API, DB, services) et rendre les tests deterministes.
Anti-pattern
Utiliser des mocks partout y compris pour le code qu'on controle, rendant les tests deconnectes de la realite.