Heim  >  Artikel  >  Web-Frontend  >  Wie kann man ES6-Modulimporte im Scherz effektiv verspotten?

Wie kann man ES6-Modulimporte im Scherz effektiv verspotten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-24 00:24:02614Durchsuche

How to Effectively Mock ES6 Module Imports in Jest?

ES6-Modulimporte im Scherz 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.

Verspotten mit Import *

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn