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.
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