Cum se testează paginarea în componentele React cu Enzyme?

Nov 11, 2025

Lăsaţi un mesaj

Dr. Emily Carter
Dr. Emily Carter
În calitate de director al cercetării alimentare de sănătate la ASCLEPIUS, conduc echipa noastră în dezvoltarea pulberilor de extract de plante de ultimă oră. Cu peste un deceniu de experiență în chimia produsului natural, sunt pasionat de crearea de soluții inovatoare care valorifică puterea naturii.

Testarea paginației în componentele React este o parte esențială a asigurării funcționalității și experienței utilizatorului aplicațiilor dvs. web. În calitate de furnizor de enzime, am văzut direct cât de important este să existe un proces de testare fiabil pentru caracteristicile de paginare. În această postare pe blog, voi împărtăși câteva sfaturi și trucuri despre cum să testați paginarea în componentele React folosind Enzyme.

Înțelegerea paginației în React

Înainte de a ne lansa în testare, să trecem rapid peste ce este paginarea și cum este implementată în React. Paginarea este o tehnică folosită pentru a împărți seturi mari de date în pagini mai mici, mai ușor de gestionat. Într-o aplicație React, paginarea este adesea implementată folosind stare pentru a ține evidența paginii curente și a numărului de articole pe pagină.

Iată un exemplu simplu de componentă React cu paginare:

import React, { useState } din 'react'; const PaginationComponent = ({ itemi }) => { const [currentPage, setCurrentPage] = useState(1); const itemiPerPage = 10; const indexOfLastItem = currentPage * itemsPerPage; const indexOfFirstItem = indexOfLastItem - itemsPerPage; const currentItems = itemi.slice(indexOfFirstItem, indexOfLastItem); const paginate = (pageNumber) => setCurrentPage(pageNumber); return ( <div> {currentItems.map((item) => ( <div key={item.id}>{item.name}</div> ))} {/* Butoane de paginare */} <button onClick={() => paginate(currentPage - 1)} disabled={currentPage === 1}> Buttonul de pe butonul <() Previous paginate(currentPage + 1)} disabled={indexOfLastItem >= items.length}> Next </button> </div> ); }; export implicit PaginationComponent;

Configurarea enzimei pentru testare

Enzyme este un utilitar de testare JavaScript pentru React, care facilitează afirmarea, manipularea și parcurgerea rezultatelor React Components. Pentru a începe să utilizați Enzyme, va trebui să îl instalați împreună cu adaptorul său pentru versiunea dvs. de React.

npm install --save-dev enzyme enzyme-adapter-react-16

Iată cum puteți configura Enzyme în fișierul dvs. de testare:

import Enzyme, { superficial } din „enzimă”; import Adapter de la „enzima-adapter-react-16”; Enzyme.configure({ adaptor: adaptor nou() });

Testarea funcționalității de paginare

Acum că avem componenta și Enzyme configurate, să începem să testăm funcționalitatea de paginare.

Testarea randării inițiale

Primul lucru pe care vrem să-l testăm este randarea inițială a componentei. Vom verifica dacă numărul corect de articole este afișat pe prima pagină.

import React from'react'; import PaginationComponent din './PaginationComponent'; import Enzyme, { superficial } din „enzimă”; import Adapter de la „enzima-adapter-react-16”; Enzyme.configure({ adaptor: adaptor nou() }); descrie('PaginationComponent', () => { const items = Array.from({ length: 20 }, (_, i) => ({ id: i, name: `Item ${i}` })); it('ar trebui să arate numărul corect de articole pe prima pagină', () => { const wrapper = low(<PaginationsComponent} articole /={); expect(wrapper.find('div').length).toBe(10 + 2 // 10 articole + 2 butoane });

Testarea butoanelor de paginare

În continuare, vom testa butoanele de paginare pentru a ne asigura că funcționează conform așteptărilor. Vom face clic pe butonul „Următorul” și vom verifica dacă următorul set de articole este afișat.

it('ar trebui să afișeze următorul set de articole atunci când se face clic pe butonul Următorul', () => { const wrapper = superficial (<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); // Verificați dacă starea s-a actualizat aștepta) );(wrapper. Verificați dacă sunt afișate numărul corect de articole expect(wrapper.find('div').length).toBe(10 + 2 });

De asemenea, putem testa butonul „Previous” într-un mod similar:

Factory Supply Organic Dried Avocado PowderGinger Oil

it('ar trebui să afișeze setul anterior de articole când se face clic pe butonul Previous', () => { const wrapper = superficial(<PaginationComponent item={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); const prevButton =('0button'.find).('wrapper'.find). prevButton.simulate('click'); expect(wrapper.state('currentPage')).toBe(1);

Testarea butoanelor dezactivate

De asemenea, ar trebui să testăm că butoanele de paginare sunt dezactivate atunci când ar trebui să fie. De exemplu, butonul „Previous” ar trebui să fie dezactivat pe prima pagină, iar butonul „Next” ar trebui să fie dezactivat pe ultima pagină.

it('ar trebui să dezactiveze butonul Previous de pe prima pagină', () => { const wrapper = superficial(<PaginationComponent items={items} />); const prevButton = wrapper.find('button').at(0); expect(prevButton.prop('disabled')).toBe(true);}); it('ar trebui să dezactiveze butonul Următorul de pe ultima pagină', () => { const wrapper = superficial(<PaginationComponent items={items} />); // Navigați la ultima pagină în timp ce (wrapper.find('button').at(1).prop('disabled') === false) { wrapper.find).('1);'late). nextButton = wrapper.find('button').at(1); expect(nextButton.prop('disabled')).toBe(true });

Scenarii avansate de testare

Testarea cazurilor Edge

Pe lângă funcționalitatea de bază, ar trebui să testăm și unele cazuri de margine. De exemplu, ce se întâmplă dacă nu există articole sau dacă există mai puține articole decât articolele pe pagină?

it('ar trebui să se ocupe de o listă goală de articole', () => { const wrapper = shallow(<PaginationComponent items={[]} />); expect(wrapper.find('div').length).toBe(2); // Numai butoanele }); it('ar trebui să gestioneze o listă de articole mai mici decât articolele pe pagină', () => { const smallItems = Array.from({ length: 5 }, (_, i) => ({ id: i, name: `Item ${i}` })); const wrapper = shallow(<PaginationComponent items={smallItems} />); expect(wrapper.find('div').length).toBe(5 + 2 });

Testarea cu diferite articole pe pagină

Putem testa și componenta cu valori diferite pentruitemPerPage. Acest lucru poate fi util dacă aplicația dvs. permite utilizatorului să modifice numărul de articole afișate pe pagină.

it('ar trebui să afișeze numărul corect de articole cu o valoare diferită itemPerPage', () => { const CustomPaginationComponent = ({ itemi }) => { const [currentPage, setCurrentPage] = useState(1); const itemsPerPage = 5; // Restul codului componentei... }; const wrapper = shallow(<CustomPagina) ; expect(wrapper.find('div').length).toBe(5 + 2 });

Concluzie

Testarea paginației în componentele React cu Enzyme este un pas important în asigurarea fiabilității și funcționalității aplicației dumneavoastră. Urmând sfaturile și exemplele din această postare pe blog, puteți scrie teste cuprinzătoare pentru caracteristicile dvs. de paginare.

Dacă sunteți în căutarea unor produse enzimatice de înaltă calitate pentru nevoile dvs. de testare, suntem aici pentru a vă ajuta. Oferim o gamă largă de soluții de enzime, inclusivUlei de ghimbir,Aprovizionare din fabrică Pudră organică de avocado uscat, șiPreț cu ridicata în vrac 100% proteine ​​din zer. Contactați-ne pentru a discuta cerințele dvs. și pentru a începe o negociere de achiziție.

Referințe

  • Documentația enzimei: https://enzymejs.github.io/enzyme/
  • Documentația React: https://reactjs.org/docs/getting-started.html
Trimite anchetă