Bagaimana cara menguji pagination di komponen React dengan Enzyme?

Nov 11, 2025

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.

Menguji penomoran halaman di komponen React adalah bagian penting untuk memastikan fungsionalitas dan pengalaman pengguna aplikasi web Anda. Sebagai pemasok Enzim, saya telah melihat secara langsung betapa pentingnya memiliki proses pengujian yang andal untuk fitur penomoran halaman. Pada postingan blog kali ini, saya akan membagikan beberapa tips dan trik cara menguji pagination pada komponen React menggunakan Enzyme.

Memahami Pagination di React

Sebelum kita mendalami pengujian, mari kita bahas apa itu penomoran halaman dan bagaimana penerapannya di React. Pagination adalah teknik yang digunakan untuk membagi kumpulan data besar menjadi halaman yang lebih kecil dan lebih mudah dikelola. Dalam aplikasi React, penomoran halaman sering kali diimplementasikan menggunakan status untuk melacak halaman saat ini dan jumlah item per halaman.

Berikut ini contoh sederhana komponen React dengan penomoran halaman:

import React, { useState } dari'react'; const PaginationComponent = ({ item }) => { const [currentPage, setCurrentPage] = useState(1); const itemPerHalaman = 10; const indexOfLastItem = Halaman saat ini * itemPerPage; const indexOfFirstItem = indexOfLastItem - itemPerPage; const currentItems = item.slice(indexOfFirstItem, indexOfLastItem); const paginate = (nomor halaman) => setCurrentPage(nomor halaman); return ( <div> {currentItems.map((item) => ( <div key={item.id}>{item.name}</div> ))} {/* Tombol pagination */} <button onClick={() => paginate(currentPage - 1)} dinonaktifkan={currentPage === 1}> Sebelumnya </button> <button onClick={() => paginate(currentPage + 1)} dinonaktifkan={indexOfLastItem >= item.length}> Berikutnya </button> </div> ); }; ekspor Komponen Pagination default;

Menyiapkan Enzim untuk Pengujian

Enzyme adalah utilitas pengujian JavaScript untuk React yang membuatnya lebih mudah untuk menegaskan, memanipulasi, dan menelusuri keluaran Komponen React Anda. Untuk memulai Enzyme, Anda harus menginstalnya bersama adaptornya untuk versi React Anda.

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

Inilah cara Anda menyiapkan Enzim di file pengujian Anda:

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

Menguji Fungsi Paginasi

Sekarang setelah kita menyiapkan komponen dan Enzim, mari kita mulai menguji fungsionalitas penomoran halaman.

Menguji Render Awal

Hal pertama yang ingin kita uji adalah render awal komponen. Kami akan memeriksa apakah jumlah item yang ditampilkan di halaman pertama benar.

impor Bereaksi dari'bereaksi'; import PaginationComponent dari './PaginationComponent'; import Enzim, { dangkal } dari 'enzim'; impor Adaptor dari 'enzyme-adapter-react-16'; Enzim.konfigurasi({ adaptor: adaptor baru() }); deskripsikan('PaginationComponent', () => { const items = Array.from({ length: 20 }, (_, i) => ({ id: i, name: `Item ${i}` })); it('harus merender jumlah item yang benar pada halaman pertama', () => { const wrapper = dangkal(<PaginationComponent items={items} />); mengharapkan(wrapper.find('div').length).toBe(10 + 2); // 10 item + 2 tombol });

Menguji Tombol Pagination

Selanjutnya, kita akan menguji tombol penomoran halaman untuk memastikannya berfungsi seperti yang diharapkan. Kami akan mengklik tombol "Berikutnya" dan memeriksa apakah kumpulan item berikutnya ditampilkan.

it('harus menampilkan kumpulan item berikutnya ketika tombol Berikutnya diklik', () => { const wrapper = dangkal(<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); // Periksa apakah status telah diperbaruiexpect(wrapper.state('currentPage')).toBe(2); // Periksa apakah jumlah item yang benar ditampilkan mengharapkan(wrapper.find('div').length).toBe(10 + 2 });

Kita juga dapat menguji tombol "Sebelumnya" dengan cara serupa:

Factory Supply Organic Dried Avocado PowderGinger Oil

it('harus menampilkan kumpulan item sebelumnya ketika tombol Sebelumnya diklik', () => { const wrapper = dangkal(<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); const prevButton = wrapper.find('button').at(0); prevButton.simulate('click'); mengharapkan(wrapper.state('currentPage')).toBe(1); mengharapkan(wrapper.find('div').length).toBe(10 + 2 });

Menguji Tombol yang Dinonaktifkan

Kita juga harus menguji apakah tombol penomoran halaman dinonaktifkan pada saat yang seharusnya. Misalnya, tombol "Sebelumnya" harus dinonaktifkan di halaman pertama, dan tombol "Berikutnya" harus dinonaktifkan di halaman terakhir.

it('harus menonaktifkan tombol Sebelumnya di halaman pertama', () => { const wrapper = dangkal(<PaginationComponent items={items} />); const prevButton = wrapper.find('button').at(0);expect(prevButton.prop('disabled')).toBe(true); }); it('harus menonaktifkan tombol Berikutnya di halaman terakhir', () => { const wrapper = dangkal(<PaginationComponent items={items} />); // Navigasi ke halaman terakhir while (wrapper.find('button').at(1).prop('disabled') === false) { wrapper.find('button').at(1).simulate('click'); } const nextButton = wrapper.find('button').at(1);expect(nextButton.prop('disabled')).toBe(true });

Skenario Pengujian Lanjutan

Menguji Kasus Tepi

Selain fungsi dasar, kita juga harus menguji beberapa kasus edge. Misalnya, apa yang terjadi jika tidak ada item atau jika jumlah item lebih sedikit daripada item per halaman?

it('harus menangani daftar item yang kosong', () => { const wrapper = dangkal(<PaginationComponent items={[]} />); ekspektasi(wrapper.find('div').length).toBe(2); // Hanya tombolnya }); it('harus menangani daftar item yang lebih kecil dari item per halaman', () => { const smallItems = Array.from({ length: 5 }, (_, i) => ({ id: i, name: `Item ${i}` })); const wrapper = dangkal(<PaginationComponent items={smallItems} />);expect(wrapper.find('div').length).toBe(5 + 2);

Menguji dengan Item Berbeda Per Halaman

Kita juga dapat menguji komponen dengan nilai yang berbedaitemPerHalaman. Ini bisa berguna jika aplikasi Anda mengizinkan pengguna mengubah jumlah item yang ditampilkan per halaman.

it('harus menampilkan jumlah item yang benar dengan nilai itemsPerPage yang berbeda', () => { const CustomPaginationComponent = ({ item }) => { const [currentPage, setCurrentPage] = useState(1); const itemsPerPage = 5; // Kode komponen lainnya... }; const wrapper = dangkal(<CustomPaginationComponent items={items} />); mengharapkan(wrapper.find('div').length).toBe(5 + 2 });

Kesimpulan

Menguji pagination dalam komponen React dengan Enzyme merupakan langkah penting dalam memastikan keandalan dan fungsionalitas aplikasi Anda. Dengan mengikuti tip dan contoh dalam postingan blog ini, Anda dapat menulis pengujian komprehensif untuk fitur penomoran halaman Anda.

Jika Anda mencari produk enzim berkualitas tinggi untuk kebutuhan pengujian Anda, kami siap membantu. Kami menawarkan berbagai macam solusi enzim, termasukMinyak Jahe,Pasokan Pabrik Bubuk Alpukat Kering Organik, DanHarga Grosir Massal 100% Whey Protein. Hubungi kami untuk mendiskusikan kebutuhan Anda dan memulai negosiasi pengadaan.

Referensi

  • Dokumentasi Enzim: https://enzymejs.github.io/enzyme/
  • Dokumentasi React: https://reactjs.org/docs/getting-started.html
Kirim permintaan