Rumah >hujung hadapan web >tutorial js >Cara Mengejek Import ES6 dalam Jest: Panduan Komprehensif

Cara Mengejek Import ES6 dalam Jest: Panduan Komprehensif

Susan Sarandon
Susan Sarandonasal
2024-10-23 22:23:30472semak imbas

How to Mock ES6 Imports in Jest: A Comprehensive Guide

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn