createTestingModule

NestJS 🟡 Mid

Définition

Méthode de Test.createTestingModule qui crée un module NestJS isole pour les tests. Permet de mocker les dépendances via overrideProvider.

Analogie

Comme un simulateur de vol : tu recrees l'environnement complet mais en mode test.

Exemple de code

const module = await Test.createTestingModule({
  providers: [UserService,
    { provide: UserRepository, useValue: mockRepo }],
}).compile();

const service = module.get<UserService>(UserService);
expect(await service.findAll()).toEqual([]);

Cas d'usage

Écrire des tests unitaires et d'intégration pour les services NestJS avec des mocks.

Anti-pattern

Tester les services sans TestingModule, instanciant manuellement avec new et perdant la DI.
#testing#interview

En entretien

  1. Explique-moi à quoi sert Test.createTestingModule.

    Ça crée un module NestJS isolé pour les tests, avec la possibilité de mocker les dépendances via overrideProvider, comme un simulateur de vol qui recrée l'environnement complet mais en mode test. On récupère ensuite le service testé via module.get() en gardant l'injection de dépendances intacte.

  2. Pourquoi ne pas juste instancier le service avec new dans un test unitaire ?

    Parce que c'est l'anti-pattern décrit : instancier manuellement avec new fait perdre toute la mécanique de DI et oblige à fournir toutes les dépendances à la main. Passer par TestingModule permet de mocker proprement chaque dépendance comme un repository.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre