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

Comment simuler efficacement les importations de modules ES6 dans Jest ?

Mary-Kate Olsen
Libérer: 2024-10-24 00:24:02
original
613 Les gens l'ont consulté

How to Effectively Mock ES6 Module Imports in Jest?

Se moquer des importations de modules ES6 dans Jest

Lors des tests de modules ES6, il est souvent nécessaire de se moquer des modules importés pour isoler et affirmer des fonctionnalités spécifiques. Dans ce contexte, Jest propose plusieurs options pour se moquer des importations de modules.

L'approche traditionnelle consiste à se moquer des exportations nommées individuelles ou des exportations par défaut en utilisant respectivement jest.mock ou jest.spyOn. Cependant, pour des scénarios plus complexes, une méthode plus flexible existe.

Mocking with import *

L'utilisation de import * permet de moquer toutes les exportations d'un module, y compris les exportations nommées et par défaut. Voici le code modifié en utilisant cette approche :

<code class="js">// dependency.js
export const doSomething = (y) => console.log(y);
export default (y) => console.log(y);

// myModule.js
import * as dependency from './dependency';

export default (x) => {
  dependency.doSomething(x * 2);
  dependency.default(x * 2);
};

// myModule-test.js
import myModule from '../myModule';
import * as dependency from '../dependency';

describe('myModule', () => {
  it('calls the dependency with double the input', () => {
    dependency.doSomething = jest.fn();
    dependency.default = jest.fn();

    myModule(2);

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

Dans cet exemple, nous remplaçons import { doSomething } par import * comme dépendance pour importer toutes les exportations nommées. Nous modifions ensuite directement l'objet importé pour nous moquer des fonctions exportées à l'aide de jest.fn().

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!