Cara Mengejek Import ES6 dalam Jest: Panduan Komprehensif

Susan Sarandon
Lepaskan: 2024-10-23 22:23:30
asal
388 orang telah melayarinya

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>
Salin selepas log masuk

Dalam modul pengeluaran anda:

<code class="js">// myModule.js
import { doSomething } from './dependency';

export default (x) => {
  doSomething(x * 2);
};</code>
Salin selepas log masuk

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>
Salin selepas log masuk

Ejek Eksport Lalai

Godam yang sama berfungsi untuk eksport lalai:

<code class="js">// dependency.js
export default (y) => console.log(y);</code>
Salin selepas log masuk
<code class="js">// myModule.js
import dependency from './dependency'; // Note the lack of curlies

export default (x) => {
  dependency(x * 2);
};</code>
Salin selepas log masuk
<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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!