Uji pendengar dipanggil dengan CustomEvent() yang dijangka
Hari ini saya sedar kami menghadapi masalah dalam ujian (Jest)
Kami mempunyai fungsi yang mengeluarkan CustomEvents
Dalam ujian Jest kami, kami mentakrifkan pendengar dan menyemak sama ada ia dipanggil dengan acara yang dijangkakan
Saya cuba menukar butiran (objek dalaman) acara tersuai
... dan ujian itu masih berlalu ?
test('events.voiceEvent() emits "CustomEvent{ lavoiceevent }" event', () => { const expectedEvent = new CustomEvent('lavoiceevent', { detail: { event: 'USER_SAID_HELLO_ERRRRROR' }, }); window.addEventListener('lavoiceevent', listener); events.voiceEvent('USER_SAID_HELLO'); expect(listener).toHaveBeenCalledWith(expectedEvent); // ✅ expect(listener).toHaveBeenCalledTimes(1); });
Masalahnya ialah baris ini tidak akan berfungsi seperti yang dijangkakan (isu yang berkaitan dengan penyiaran Acara)
expect(listener).toHaveBeenCalledWith(expectedEvent)
Untuk menyelesaikan perkara ini (dan membuat ujian kami menyemak butiran acara) kami harus menggunakan "mock.calls" sebagai:
test('events.voiceEvent() emits "CustomEvent{ lavoiceevent }" event', () => { const listener = jest.fn(); window.addEventListener('lavoiceevent', listener); events.voiceEvent('USER_SAID_HELLO'); expect(listener).toHaveBeenCalledTimes(1); expect(listener).toHaveBeenCalledWith(expect.any(CustomEvent)); const ev = listener.mock.calls[0][0]; expect(ev.type).toBe('lavoiceevent'); expect(ev.detail.event).toBe('USER_SAID_HELLO'); // ? will fail otherwise });
--
terima kasih kerana membaca.
Atas ialah kandungan terperinci Uji pendengar dipanggil dengan CustomEvent() yang dijangka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

jQuery mendapatkan padding/margin elemen

HTTP Debugging dengan Node dan HTTP-Console

Tutorial Persediaan API Carian Google Custom
