Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie verspottet man ES6-Modulimporte im Scherz?

Barbara Streisand
Freigeben: 2024-10-23 22:31:30
Original
809 Leute haben es durchsucht

How to Mock ES6 Module Imports in Jest?

ES6-Modulimporte im Scherz verspotten

Einführung

Jest bietet eine umfassende Suite von Tools für Unit-Tests, einschließlich Verspotten Module, die in Ihren Code importiert werden. In diesem Artikel wird erläutert, wie ES6-Modulimporte in Jest simuliert werden, um die Herausforderung des Testens von Modulabhängigkeiten zu bewältigen.

Problembeschreibung

Das Verspotten von Modulimporten ermöglicht es Entwicklern, das Verhalten von zu isolieren ein bestimmtes Modul, während Tests für seine abhängigen Module ausgeführt werden. Allerdings ist der in Jasmine verwendete Ansatz, bei dem Importe durch Spione ersetzt werden, in Jest aufgrund seiner unterschiedlichen Testumgebung nicht direkt anwendbar.

Lösung

Jest bietet die import *-Syntax zum Importieren aller Exporte aus einem Modul als einzelnes Objekt. Diese Technik kann genutzt werden, um ES6-Modulimporte zu verspotten.

Benannte Exporte verspotten

Für benannte Exporte importieren Sie einfach das Modul mit import * und mutieren dann das exportierte Objekt zu Verspotten Sie die gewünschte Funktion:

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

export default (x) => {
  doSomething(x * 2);
};
Nach dem Login kopieren
// 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);
  });
});
Nach dem Login kopieren

Standardexporte verspotten

Für Standardexporte können Sie sie mit import moduleName from 'modulePath' importieren. und dann den Standardwert des importierten Objekts ändern:

// dependency.js
export default (y) => console.log(y);
Nach dem Login kopieren
// 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
  });
});
Nach dem Login kopieren

Fazit

Mit der Import *-Syntax und dem Ändern des exportierten Objekts ist dies möglich um ES6-Modulimporte in Jest zu simulieren, sodass Sie die Funktionalität Ihrer Module testen und gleichzeitig deren Abhängigkeiten isolieren können.

Das obige ist der detaillierte Inhalt vonWie verspottet man ES6-Modulimporte im Scherz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!