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

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

Susan Sarandon
Susan SarandonOriginal
2024-10-23 22:23:30387Durchsuche

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>

In Ihrem Produktionsmodul:

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

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

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>

Default Export Mocking

Derselbe Hack funktioniert für Standardexporte:

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

export default (x) => {
  dependency(x * 2);
};</code>
<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>

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!

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