Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie verspotte ich ES6-Modulimporte in Jest mithilfe von import *?

DDD
Freigeben: 2024-10-24 05:22:02
Original
776 Leute haben es durchsucht

How to Mock ES6 Module Imports in Jest Using import *?

ES6-Modulimporte scherzhaft verspotten

In Jasmine ist das Verspotten eines ES6-Modulimports unkompliziert. Bei Jest kann der Prozess jedoch schwieriger sein, insbesondere wenn es sich um Module handelt, die Standardexporte verwenden. In diesem Artikel wird untersucht, wie man ES6-Modulimporte in Jest mit einem einfachen Import *-Hack verspottet.

Traditionell erforderte das Verspotten eines Imports, dass die Importe durch „requires“ ersetzt und in den Tests deklariert wurden. Dieser Ansatz kann unerwünscht sein.

<code class="javascript">// undesirable approach
import myModule from '../myModule';
import dependency from '../dependency';

describe('myModule', () => {
  // ...
});</code>
Nach dem Login kopieren

Stattdessen können wir import * nutzen, um die Exporte des Moduls direkt zu ändern, sodass wir die gewünschte Funktion oder den Standardexport nachahmen können. Für benannte Exporte:

<code class="javascript">import * as dependency from '../dependency';

// ...

dependency.doSomething = jest.fn(); // mutate the named export
myModule(2);

expect(dependency.doSomething).toBeCalledWith(4);</code>
Nach dem Login kopieren

Ähnlich gilt für Standardexporte:

<code class="javascript">import * as dependency from '../dependency';

// ...

dependency.default = jest.fn(); // mutate the default export
myModule(2);

expect(dependency.default).toBeCalledWith(4);</code>
Nach dem Login kopieren

Während diese Methode eine Problemumgehung zum Verspotten von ES6-Importen bietet, ist es wichtig zu beachten, dass dabei das importierte Modul mutiert wird , was zu Nebenwirkungen und potenziellen Problemen bei der Testausführung führen kann. Daher wird die Verwendung der nativen Mocking-Methoden von Jest, wie jest.spyOn oder jest.mock, als bevorzugter Ansatz empfohlen.

Das obige ist der detaillierte Inhalt vonWie verspotte ich ES6-Modulimporte in Jest mithilfe von import *?. 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
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!