Test doubles

A test double replaces a real dependency (database, API, clock) to isolate the code under test: stub (fixed value), mock (verifies calls), spy (observes calls), or fake (simplified version). It makes tests fast and deterministic.

Example

const envoyer = vi.fn();
notifier(envoyer);
expect(envoyer).toHaveBeenCalledTimes(1);

Related concepts

The whole glossary