Heim > Web-Frontend > js-Tutorial > So verspotten Sie ES6-Importe im Scherz: Eine umfassende Anleitung

So verspotten Sie ES6-Importe im Scherz: Eine umfassende Anleitung

Susan Sarandon
Freigeben: 2024-10-23 22:23:30
Original
468 Leute haben es durchsucht

How to Mock ES6 Imports in Jest: A Comprehensive Guide

So verspotten Sie ES6-Importe mit Jest

Einführung

Beim Testen von ES6-Modulen Möglicherweise muss das Verhalten importierter Abhängigkeiten simuliert werden. Während Jasmine einen unkomplizierten Ansatz bietet, erfordert Jest eine etwas andere Lösung.

Verspottung benannter Exporte

Um einen benannten Export zu verspotten, können Sie einen Hack mit Import * verwenden. Betrachten Sie das folgende Modul:

<code class="js">// dependency.js
export const doSomething = (y) => console.log(y);</code>
Nach dem Login kopieren

In Ihrem Produktionsmodul:

<code class="js">// myModule.js
import { doSomething } from './dependency';

export default (x) => {
  doSomething(x * 2);
};</code>
Nach dem Login kopieren

Und in Ihrem Test:

<code class="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);
  });
});</code>
Nach dem Login kopieren

Default Export Mocking

Derselbe Hack funktioniert für Standardexporte:

<code class="js">// dependency.js
export default (y) => console.log(y);</code>
Nach dem Login kopieren
<code class="js">// myModule.js
import dependency from './dependency'; // Note the lack of curlies

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

Vorsichtshinweis

Dieser Hacking-Ansatz funktioniert zwar, Dies wird nicht empfohlen, da es zu Nebenwirkungen und unvorhersehbarem Verhalten bei Tests führen kann, insbesondere wenn Tests außerhalb der Reihenfolge ausgeführt werden. Für eine robustere und zuverlässigere Verspottung sollten Sie jest.spyOn oder jest.mock verwenden, wie in anderen Antworten oder in der aktualisierten Dokumentation vorgeschlagen.

Das obige ist der detaillierte Inhalt vonSo verspotten Sie ES6-Importe im Scherz: Eine umfassende Anleitung. 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