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!