Dalam Jasmine, mengejek import modul ES6 adalah mudah. Walau bagaimanapun, dalam Jest, prosesnya boleh menjadi lebih mencabar, terutamanya apabila berurusan dengan modul yang menggunakan eksport lalai. Artikel ini meneroka cara untuk mengejek import modul ES6 dalam Jest menggunakan import * hack yang mudah.
Secara tradisinya, mengejek import diperlukan menggantikan import dengan keperluan dan mengisytiharkannya dalam ujian. Pendekatan ini mungkin tidak diingini.
<code class="javascript">// undesirable approach import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { // ... });</code>
Sebaliknya, kami boleh memanfaatkan import * untuk mengubah eksport modul secara langsung, membolehkan kami mengejek fungsi yang diingini atau eksport lalai. Untuk eksport bernama:
<code class="javascript">import * as dependency from '../dependency'; // ... dependency.doSomething = jest.fn(); // mutate the named export myModule(2); expect(dependency.doSomething).toBeCalledWith(4);</code>
Begitu juga, untuk eksport lalai:
<code class="javascript">import * as dependency from '../dependency'; // ... dependency.default = jest.fn(); // mutate the default export myModule(2); expect(dependency.default).toBeCalledWith(4);</code>
Walaupun kaedah ini menawarkan penyelesaian untuk mengejek import ES6, adalah penting untuk ambil perhatian bahawa ia melibatkan mutasi modul yang diimport , yang boleh memperkenalkan kesan sampingan dan potensi isu dalam pelaksanaan ujian. Oleh itu, menggunakan kaedah ejekan asli Jest, seperti jest.spyOn atau jest.mock, disyorkan sebagai pendekatan pilihan.
Atas ialah kandungan terperinci Bagaimana untuk mengejek Import Modul ES6 dalam Jest Menggunakan import *?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!