"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment se moquer des importations de modules ES6 dans la plaisanterie?

Comment se moquer des importations de modules ES6 dans la plaisanterie?

Publié le 2025-03-24
Parcourir:767

How to Mock ES6 Module Imports in Jest?

Mocking Es6 Module Imports in Jest

introduction

Jest fournit une suite complète d'outils pour les tests unitaires, y compris des modules moqueurs qui sont importés dans votre code. Cet article explique comment se moquer des importations de modules ES6 dans la plaisanterie, en abordant le défi de tester les dépendances du module.

Instruction Problème

Les importations de module moquerie permettent aux développeurs d'isoler le comportement d'un module spécifique tout en exécutant des tests pour ses modules dépendants. Cependant, l'approche utilisée dans le jasmin, où les importations sont remplacées par des espions, n'est pas directement applicable dans la plaisanterie en raison de son environnement de test différent.

Solution

Jest fournit la syntax d'importation pour importer toutes les exportations à partir d'un module comme un seul objet. Cette technique peut être exploitée pour se moquer des importations de modules ES6.

Mocking Named Exports

pour les exportations nommées, importent simplement le module en utilisant l'importation * et ensuite muter l'objet exporté pour moquer la fonction souhaitée:

// dependency.js
export const doSomething = (y) => console.log(y);
// myModule.js
import { doSomething } from './dependency';

export default (x) => {
  doSomething(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(); // Mutate the named export

    myModule(2);

    expect(dependency.doSomething).toBeCalledWith(4);
  });
});

Mocking Exports par défaut

Pour les exportations par défaut, vous pouvez les importer à l'aide d'importation de modulename à partir de 'modulepath' puis muter la valeur par défaut de l'objet importé:

// dependency.js
export default (y) => console.log(y);
// myModule.js
import myModule from './myModule';
import * as dependency from '../dependency';

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

    myModule(2);

    expect(dependency.default).toBeCalledWith(4); // Assert against the default
  });
});

Conclusion

En utilisant la syntaxe d'import * et en mutant l'objet exporté, il est possible de moquer les importations de modules ES6 dans JEST, vous permettant de tester les fonctionnalités de vos modules tout en isolant leurs dépendances.

Déclaration de sortie Cet article est reproduit le: 1729676733 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3