Heim >Web-Frontend >js-Tutorial >Wie kann man ES6-Modulimporte im Scherz effektiv verspotten?
Beim Testen von ES6-Modulen besteht häufig die Notwendigkeit, importierte Module zu verspotten, um bestimmte Funktionen zu isolieren und zu behaupten. In diesem Zusammenhang bietet Jest mehrere Optionen zum Verspotten von Modulimporten.
Der traditionelle Ansatz besteht darin, einzelne benannte Exporte oder Standardexporte mit jest.mock bzw. jest.spyOn zu verspotten. Für komplexere Szenarien gibt es jedoch eine flexiblere Methode.
Die Verwendung von Import * ermöglicht das Verspotten aller Exporte aus einem Modul, einschließlich benannter und Standardexporte. Hier ist der geänderte Code, der diesen Ansatz verwendet:
<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>
In diesem Beispiel ersetzen wir import { doSomething } durch import * als Abhängigkeit, um alle benannten Exporte zu importieren. Anschließend mutieren wir das importierte Objekt direkt, um die exportierten Funktionen mit jest.fn() zu verspotten.
Das obige ist der detaillierte Inhalt vonWie kann man ES6-Modulimporte im Scherz effektiv verspotten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!