Rumah >hujung hadapan web >tutorial js >Cara Mengejek Import ES6 dalam Jest: Panduan Komprehensif
Cara Mengejek Import ES6 dengan Jest
Pengenalan
Apabila menguji modul ES6, anda mungkin perlu mengejek tingkah laku tanggungan yang diimport. Walaupun Jasmine menawarkan pendekatan yang mudah, Jest memerlukan penyelesaian yang sedikit berbeza.
Ejek Eksport Dinamakan
Untuk mengejek eksport bernama, anda boleh menggunakan penggodaman yang melibatkan import *. Pertimbangkan modul berikut:
<code class="js">// dependency.js export const doSomething = (y) => console.log(y);</code>
Dalam modul pengeluaran anda:
<code class="js">// myModule.js import { doSomething } from './dependency'; export default (x) => { doSomething(x * 2); };</code>
Dan dalam ujian anda:
<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>
Ejek Eksport Lalai
Godam yang sama berfungsi untuk eksport lalai:
<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>
Nota Awas
Sementara pendekatan penggodaman ini berfungsi, ia tidak digalakkan kerana ia boleh membawa kepada kesan sampingan dan tingkah laku yang tidak dapat diramalkan dalam ujian, terutamanya jika ujian dilaksanakan dalam keadaan tidak teratur. Untuk ejekan yang lebih mantap dan boleh dipercayai, pertimbangkan untuk menggunakan jest.spyOn atau jest.mock seperti yang dicadangkan dalam jawapan lain atau dalam dokumentasi yang dikemas kini.
Atas ialah kandungan terperinci Cara Mengejek Import ES6 dalam Jest: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!