Test Double

Testing 🟡 Mid

Definition

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.
#testing#interview#fondamental