Test Double
Testing 🟡 MidDéfinition
Terme générique pour tout objet utilise a la place d'une dépendance réelle dans un test. Comprend 5 types : Dummy, Stub, Spy, Mock et Fake.
Analogie
Comme une doublure au cinéma : elle remplace l'acteur principal pour les scènes dangereuses, chaque type de doublure a un role précis.
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'unité testée de ses dépendances (API, DB, services) et rendre les tests déterministes.
Anti-pattern
Termes liés
En entretien
Explique-moi ce qu'est un Test Double et ses types.
C'est un terme générique pour tout objet utilisé à la place d'une dépendance réelle dans un test, incluant cinq types : Dummy, Stub, Spy, Mock et Fake. On l'utilise pour isoler l'unité testée de ses dépendances comme une API, une base de données ou un service, et rendre les tests déterministes.
Quel anti-pattern voit-on avec un usage excessif de mocks ?
Utiliser des mocks partout, y compris pour le code qu'on contrôle soi-même, ce qui déconnecte les tests de la réalité du comportement du système. Chaque type de doublure a un rôle précis, il ne faut pas les utiliser au hasard.
Fiche mise à jour le 2026-09-27