Maison > interface Web > js tutoriel > le corps du texte

Comment simuler les importations de modules ES6 dans Jest à l'aide de import * ?

DDD
Libérer: 2024-10-24 05:22:02
original
842 Les gens l'ont consulté

How to Mock ES6 Module Imports in Jest Using import *?

Se moquer des importations de modules ES6 dans Jest

Dans Jasmine, se moquer d'une importation de module ES6 est simple. Cependant, dans Jest, le processus peut être plus difficile, en particulier lorsqu'il s'agit de modules qui utilisent les exportations par défaut. Cet article explique comment simuler les importations de modules ES6 dans Jest à l'aide d'un simple hack import *.

Traditionnellement, se moquer d'une importation nécessitait de remplacer les importations par des require et de les déclarer dans les tests. Cette approche peut être indésirable.

<code class="javascript">// undesirable approach
import myModule from '../myModule';
import dependency from '../dependency';

describe('myModule', () => {
  // ...
});</code>
Copier après la connexion

Au lieu de cela, nous pouvons tirer parti de import * pour muter directement les exportations du module, nous permettant de nous moquer de la fonction souhaitée ou de l'exportation par défaut. Pour les exportations nommées :

<code class="javascript">import * as dependency from '../dependency';

// ...

dependency.doSomething = jest.fn(); // mutate the named export
myModule(2);

expect(dependency.doSomething).toBeCalledWith(4);</code>
Copier après la connexion

De même, pour les exportations par défaut :

<code class="javascript">import * as dependency from '../dependency';

// ...

dependency.default = jest.fn(); // mutate the default export
myModule(2);

expect(dependency.default).toBeCalledWith(4);</code>
Copier après la connexion

Bien que cette méthode offre une solution de contournement pour se moquer des importations ES6, il est essentiel de noter qu'elle implique une mutation du module importé , ce qui peut introduire des effets secondaires et des problèmes potentiels lors des exécutions de tests. Par conséquent, l'utilisation des méthodes de moquerie natives de Jest, telles que jest.spyOn ou jest.mock, est recommandée comme approche privilégiée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal