Bagaimana cara menguji modal di komponen React dengan Enzyme?

Jan 21, 2026

Tinggalkan pesan

Dr. Emily Carter
Dr. Emily Carter
Sebagai Direktur Penelitian Makanan Kesehatan di Asclepius, saya memimpin tim kami dalam mengembangkan bubuk ekstrak tanaman mutakhir. Dengan lebih dari satu dekade pengalaman dalam kimia produk alami, saya bersemangat menciptakan solusi inovatif yang memanfaatkan kekuatan alam.

Halo, sesama pengembang React! Jika Anda bekerja dengan komponen React dan berurusan dengan modals, Anda pasti tahu betapa sulitnya mengujinya dengan benar. Di situlah Enzim sangat berguna. Dan coba tebak? Saya adalah pemasok Enzim, jadi saya punya beberapa wawasan bagus untuk dibagikan kepada Anda tentang cara menguji modals dalam komponen React menggunakan Enzim.

Pertama, mari kita pahami dengan cepat apa itu Enzim. Enzyme adalah utilitas pengujian JavaScript untuk React yang membuatnya lebih mudah untuk menegaskan, memanipulasi, dan melintasi output komponen React Anda. Ini menyediakan banyak metode berguna untuk menguji komponen React dengan cara yang lebih intuitif. Terkait modals di React, kami ingin memastikan modals dibuka dan ditutup dengan benar, konten di dalamnya ditampilkan seperti yang diharapkan, dan interaksi apa pun dengan modal berfungsi sebagaimana mestinya.

Menyiapkan Proyek Anda

Sebelum kita mulai menguji modals, Anda perlu menyiapkan Enzim di proyek Anda. Jika Anda belum melakukannya, Anda dapat menginstalnya menggunakan npm atau benang. Jalankan saja perintah berikut di terminal Anda:

npm install --save-dev enzim enzim-adaptor-reaksi-16

Ini akan menginstal Enzyme dan adaptor untuk React 16. Jika Anda menggunakan versi React yang berbeda, pastikan untuk menginstal adaptor yang sesuai.

Setelah Anda menginstal Enzim, Anda perlu mengonfigurasinya di file pengaturan pengujian Anda. Berikut ini contoh bagaimana Anda dapat melakukannya:

impor Enzim dari 'enzim'; impor Adaptor dari 'enzyme-adapter-react-16'; Enzim.konfigurasi({ adaptor: adaptor baru() });

Menguji Visibilitas Modal

Salah satu hal pertama yang ingin kami uji terkait modals adalah visibilitasnya. Modal harus terbuka ketika tindakan tertentu dipicu, seperti mengklik tombol. Katakanlah kita memiliki komponen React sederhana dengan tombol yang membuka modal:

impor Bereaksi, { useState } dari 'reaksi'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const openModal = () => { setIsModalOpen(benar); }; return ( <div> <button onClick={openModal}>Buka Modal</button> {isModalOpen && <div className="modal">Ini adalah modal</div>} </div> ); }; ekspor Komponen Modal default;

Untuk menguji apakah modal terbuka ketika tombol diklik, kita dapat menggunakan Enzimdangkalmetode rendering. Berikut kode pengujiannya:

impor Bereaksi dari 'bereaksi'; impor {dangkal } dari 'enzim'; impor ModalComponent dari './ModalComponent'; deskripsikan('ModalComponent', () => { it('harus membuka modal ketika tombol diklik', () => { const wrapper = dangkal(<ModalComponent />); const button = wrapper.find('button'); button.simulate('click');expect(wrapper.find('.modal').exists()).toBe(true); }); });

Dalam pengujian ini, pertama-tama kami melakukan render dangkalKomponen Modal. Kemudian kami menemukan tombol menggunakanwrapper.find('tombol')dan simulasikan peristiwa klik di dalamnya. Terakhir, kami memeriksa apakah elemen modal dengan kelasmodalada di output komponen.

Menguji Konten Modal

Setelah kami menguji visibilitas modal, kami mungkin juga ingin menguji konten di dalam modal. Misalnya, jika modal menampilkan beberapa data dinamis, kami ingin memastikan data tersebut dirender dengan benar. Mari perbarui milik kitaKomponen Modaluntuk menampilkan beberapa data dinamis:

impor Bereaksi, { useState } dari 'reaksi'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Beberapa data awal'); const openModal = () => { setIsModalOpen(benar); }; return ( <div> <button onClick={openModal}>Buka Modal</button> {isModalOpen && <div className="modal">{modalData}</div>} </div> ); }; ekspor Komponen Modal default;

Sekarang, mari kita menulis tes untuk memeriksa apakah konten modal sudah benar:

Squalene Oil/ Squalene 1000mg Soft CapsulesCherry Juice Powder,cherry Extract Powder Supplier Wholesale

impor Bereaksi dari 'bereaksi'; impor {dangkal } dari 'enzim'; impor ModalComponent dari './ModalComponent'; deskripsikan('ModalComponent', () => { it('harus menampilkan konten modal yang benar', () => { const wrapper = dangkal(<ModalComponent />); const button = wrapper.find('button'); button.simulate('click');expect(wrapper.find('.modal').text()).toBe('Beberapa data awal'); }); });

Dalam pengujian ini, kami mengikuti proses serupa seperti sebelumnya. Kami merender komponen secara dangkal, klik tombol untuk membuka modal, lalu memeriksa apakah teks di dalam modal sama dengan data yang diharapkan.

Menguji Penutupan Modal

Sama seperti menguji pembukaan modal, kita juga perlu menguji fungsionalitas penutupannya. Mari tambahkan tombol tutup keKomponen Modal:

impor Bereaksi, { useState } dari 'reaksi'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Beberapa data awal'); const openModal = () => { setIsModalOpen(benar); }; const closeModal = () => { setIsModalOpen(false); }; return ( <div> <button onClick={openModal}>Buka Modal</button> {isModalOpen && ( <div className="modal"> {modalData} <button onClick={closeModal}>Tutup Modal</button> </div> )} </div> ); }; ekspor Komponen Modal default;

Sekarang, mari kita tulis tes untuk memeriksa apakah modal ditutup ketika tombol tutup diklik:

impor Bereaksi dari 'bereaksi'; impor {dangkal } dari 'enzim'; impor ModalComponent dari './ModalComponent'; deskripsikan('ModalComponent', () => { it('harus menutup modal ketika tombol tutup diklik', () => { const wrapper = dangkal(<ModalComponent />); const openButton = wrapper.find('button').first(); openButton.simulate('click'); const closeButton = wrapper.find('.modal button'); closeButton.simulate('click'); mengharapkan(wrapper.find('.modal').exists()).toBe(false });

Dalam pengujian ini, pertama-tama kita membuka modal dengan mengklik tombol buka. Kemudian kita menemukan tombol tutup di dalam modal dan mensimulasikan acara klik di dalamnya. Terakhir, kami memeriksa apakah elemen modal sudah tidak ada lagi di keluaran komponen.

Pengujian Modal yang Lebih Kompleks

Terkadang, modals bisa lebih kompleks, dengan banyak keadaan dan interaksi. Misalnya, modal mungkin memiliki formulir di dalamnya, dan kita perlu menguji apakah pengiriman formulir berfungsi dengan benar. Mari tambahkan formulir sederhana ke formulir kitaKomponen Modal:

impor Bereaksi, { useState } dari 'reaksi'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Beberapa data awal'); const [formData, setFormData] = useState(''); const openModal = () => { setIsModalOpen(benar); }; const closeModal = () => { setIsModalOpen(false); }; const handleSubmit = (e) => { e.preventDefault(); setModalData(formData); closeModal(); }; return ( <div> <button onClick={openModal}>Buka Modal</button> {isModalOpen && ( <div className="modal"> <form onSubmit={handleSubmit}> <input type="text" value={formData} onChange={(e) => setFormData(e.target.value)} /> <button type="submit">Kirim</button> </form> <button onClick={closeModal}>Tutup Modal</button> </div> )} </div> ); }; ekspor Komponen Modal default;

Sekarang, mari kita menulis tes untuk memeriksa apakah pengiriman formulir memperbarui data modal dan menutup modal:

impor Bereaksi dari 'bereaksi'; impor {dangkal } dari 'enzim'; impor ModalComponent dari './ModalComponent'; deskripsikan('ModalComponent', () => { it('harus memperbarui data modal dan menutup modal pada pengiriman formulir', () => { const wrapper = dangkal(<ModalComponent />); const openButton = wrapper.find('button').first(); openButton.simulate('click'); const input = wrapper.find('input'); input.simulate('change', { target: { value: 'Baru data' } }); const form = wrapper.find('form'); form.simulate('submit', { preventDefault: () => {} });expect(wrapper.find('.modal').exists()).toBe(false);expect(wrapper.instance().state.modalData).toBe('Data baru' });

Dalam pengujian ini, pertama-tama kita membuka modal, kemudian mensimulasikan peristiwa perubahan pada kolom input untuk memperbarui data formulir. Selanjutnya, kami mensimulasikan acara pengiriman formulir dan memeriksa apakah modal ditutup dan data modal diperbarui dengan benar.

Kesimpulan

Menguji modals dalam komponen React dengan Enzyme mungkin tampak sedikit menakutkan pada awalnya, tetapi setelah Anda menguasainya, semuanya menjadi mudah. Dengan mengikuti langkah-langkah dan contoh yang saya bagikan di sini, Anda seharusnya dapat menguji modal Anda secara efektif dan memastikan modal tersebut berfungsi seperti yang diharapkan.

Jika Anda mencari produk Enzim berkualitas tinggi untuk kebutuhan pengujian Anda, jangan ragu untuk melakukannyaHubungi kamiuntuk informasi lebih lanjut. Kami di sini untuk membantu Anda membuat proses pengujian Anda selancar mungkin.

Dan jika Anda tertarik dengan produk lainnya, lihat tautan ini:

Referensi

  • Dokumentasi Enzim
  • Dokumentasi Perpustakaan Pengujian React
  • Bereaksi Dokumentasi Resmi
Kirim permintaan