Einführung
scherzen liefert eine umfassende Reihe von Tools für Testen in Einheiten, einschließlich der in Ihrem Code importierten Mocking -Moduls. In diesem Artikel wird erläutert, wie das ES6 -Modul -Importe im Scherz verspottet wird und die Herausforderung des Testmodul -Abhängigkeiten behandelt. Der in Jasmine verwendete Ansatz, bei dem Importe durch Spione ersetzt werden, ist jedoch aufgrund seiner unterschiedlichen Testumgebung nicht direkt anwendbar. This technique can be leveraged to mock ES6 module imports.
Mocking Named Exports
For named exports, simply import the module using import * and then mutate the exported object to mock the desired function:
// dependency.js exportieren const dosomething = (y) => console.log (y); // mymodule.js importieren {dosomething} aus './dependency'; Exportieren Sie Standard (x) => { Dosen (x * 2); };
// myModule-test.js MyModule aus '../mymodule' importieren; Import * als Abhängigkeit von '../dependency'; beschreiben ('MyModule', () => { It ('ruft die Abhängigkeit mit dem doppelten Eingang an', () => { abhängig.dosomething = jest.fn (); // den benannten Export mutieren MyModule (2); erwarten (Abhängigkeit.Dosomething) .Tobecalled with (4); }); });
verspotteten Default -Exports
für Standard Exports, Sie können sie mit dem importierten Modulenamen aus 'modulepath' importieren und dann den Standardwert des importierten Objekts:
// 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); }); });schlussfolgerung
mit dem Import * syntax und mutieren das exportierte Objekt, es ist möglich, ES6 -Modulimporte in Scherz zu verspotten, um die Funktionalität Ihrer Modul zu testen, während sie ihre Abhängigkeiten isolieren.
.Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3