Maison  >  Article  >  interface Web  >  Comment simuler les importations de modules ES6 dans Jest à l'aide de import * ?

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

DDD
DDDoriginal
2024-10-24 05:22:02777parcourir

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>

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>

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>

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!

Déclaration:
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