¿Cómo probar la paginación en componentes de React con Enzyme?

Nov 11, 2025

Dejar un mensaje

Dra. Emily Carter
Dra. Emily Carter
Como director de investigación de alimentos saludables en Asclepius, lidero a nuestro equipo en el desarrollo de polvos de extracto de plantas de vanguardia. Con más de una década de experiencia en química de productos naturales, me apasiona crear soluciones innovadoras que aprovechen el poder de la naturaleza.

Probar la paginación en los componentes de React es una parte crucial para garantizar la funcionalidad y la experiencia del usuario de sus aplicaciones web. Como proveedor de Enzyme, he visto de primera mano lo importante que es contar con un proceso de prueba confiable para las funciones de paginación. En esta publicación de blog, compartiré algunos consejos y trucos sobre cómo probar la paginación en componentes de React usando Enzyme.

Comprender la paginación en React

Antes de sumergirnos en las pruebas, repasemos rápidamente qué es la paginación y cómo se implementa en React. La paginación es una técnica utilizada para dividir grandes conjuntos de datos en páginas más pequeñas y manejables. En una aplicación React, la paginación a menudo se implementa usando el estado para realizar un seguimiento de la página actual y la cantidad de elementos por página.

Aquí hay un ejemplo simple de un componente de React con paginación:

importar React, {useState} de 'react'; const PaginationComponent = ({ elementos }) => { const [currentPage, setCurrentPage] = useState(1); artículos constantes por página = 10; const indexOfLastItem = página actual * elementos por página; const indexOfFirstItem = indexOfLastItem - elementos por página; const elementosactuales = elementos.slice(indexOfFirstItem, indexOfLastItem); const paginate = (Número de página) => setCurrentPage(Número de página); return ( <div> {currentItems.map((item) => ( <div key={item.id}>{item.name}</div> ))} {/* Botones de paginación */} <button onClick={() => paginate(currentPage - 1)}disable={currentPage === 1}> Anterior </button> <button onClick={() => paginate(currentPage + 1)} discapacitado={indexOfLastItem >= items.length}> Siguiente </button> </div> ); }; exportar el componente de paginación predeterminado;

Configuración de enzimas para pruebas

Enzyme es una utilidad de prueba de JavaScript para React que facilita la afirmación, manipulación y recorrido de la salida de sus componentes de React. Para comenzar con Enzyme, deberá instalarlo junto con su adaptador para su versión de React.

npm install --save-dev enzima adaptador-enzimático-react-16

Así es como puede configurar Enzyme en su archivo de prueba:

importar enzima, {superficial} de 'enzima'; importar adaptador desde 'enzyme-adapter-react-16'; Enzyme.configure({adaptador: nuevo Adaptador() });

Prueba de la funcionalidad de paginación

Ahora que tenemos nuestro componente y Enzyme configurados, comencemos a probar la funcionalidad de paginación.

Probando el renderizado inicial

Lo primero que queremos probar es el renderizado inicial del componente. Comprobaremos si se muestra la cantidad correcta de elementos en la primera página.

importar Reaccionar desde 'reaccionar'; importar PaginationComponent desde './PaginationComponent'; importar enzima, {superficial} de 'enzima'; importar adaptador desde 'enzyme-adapter-react-16'; Enzyme.configure({adaptador: nuevo Adaptador() }); describe('PaginationComponent', () => { const items = Array.from({ length: 20 }, (_, i) => ({ id: i, name: `Item ${i}` })); it('debería representar el número correcto de elementos en la primera página', () => { const wrapper = superficial(<PaginationComponent items={items} />); expect(wrapper.find('div').length).toBe(10 + 2); // 10 elementos + 2 botones });

Prueba de botones de paginación

A continuación, probaremos los botones de paginación para asegurarnos de que funcionen como se esperaba. Haremos clic en el botón "Siguiente" y comprobaremos si se muestra el siguiente conjunto de elementos.

it('debe mostrar el siguiente conjunto de elementos cuando se hace clic en el botón Siguiente', () => { const wrapper = superficial(<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); // Comprobar si el estado se ha actualizado expect(wrapper.state('currentPage')).toBe(2); // Comprobar si el número correcto de se muestran los elementos expect(wrapper.find('div').length).toBe(10 + });

También podemos probar el botón "Anterior" de forma similar:

Factory Supply Organic Dried Avocado PowderGinger Oil

it('debe mostrar el conjunto anterior de elementos cuando se hace clic en el botón Anterior', () => { const wrapper = superficial(<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); const prevButton = wrapper.find('button').at(0); prevButton.simulate('click'); expect(wrapper.state('currentPage')).toBe(1); expect(wrapper.find('div').length).toBe(10 + });

Prueba de botones deshabilitados

También deberíamos probar que los botones de paginación estén deshabilitados cuando deberían estarlo. Por ejemplo, el botón "Anterior" debe estar deshabilitado en la primera página y el botón "Siguiente" debe estar deshabilitado en la última página.

it('debería deshabilitar el botón Anterior en la primera página', () => { const wrapper = superficial(<PaginationComponent items={items} />); const prevButton = wrapper.find('button').at(0); expect(prevButton.prop('disabled')).toBe(true); }); it('debería deshabilitar el botón Siguiente en la última página', () => { const wrapper = superficial(<PaginationComponent items={items} />); // Navega a la última página mientras (wrapper.find('button').at(1).prop('disabled') === false) { wrapper.find('button').at(1).simulate('click'); } const nextButton = wrapper.find('botón').at(1); expect(nextButton.prop('disabled')).toBe(true });

Escenarios de prueba avanzados

Prueba de casos extremos

Además de la funcionalidad básica, también deberíamos probar algunos casos extremos. Por ejemplo, ¿qué sucede si no hay elementos o si hay menos elementos que elementos por página?

it('debería manejar una lista vacía de elementos', () => { const wrapper = superficial(<PaginationComponent items={[]} />); expect(wrapper.find('div').length).toBe(2); // Solo los botones }); it('debe manejar una lista de elementos más pequeños que los elementos por página', () => { const smallItems = Array.from({ length: 5 }, (_, i) => ({ id: i, name: `Item ${i}` })); const wrapper = superficial(<PaginationComponent items={smallItems} />); expect(wrapper.find('div').length).toBe(5 + 2); });

Pruebas con diferentes elementos por página

También podemos probar el componente con diferentes valores paraartículos por página. Esto puede resultar útil si su aplicación permite al usuario cambiar la cantidad de elementos que se muestran por página.

it('debería mostrar el número correcto de elementos con un valor itemsPerPage diferente', () => { const CustomPaginationComponent = ({ items }) => { const [currentPage, setCurrentPage] = useState(1); const itemsPerPage = 5; // Resto del código del componente... }; const wrapper = superficial(<CustomPaginationComponent items={items} />); expect(wrapper.find('div').length).toBe(5 + 2);

Conclusión

Probar la paginación en los componentes de React con Enzyme es un paso importante para garantizar la confiabilidad y funcionalidad de su aplicación. Si sigue los consejos y ejemplos de esta publicación de blog, podrá escribir pruebas completas para sus funciones de paginación.

Si está buscando productos enzimáticos de alta calidad para sus necesidades de pruebas, estamos aquí para ayudarlo. Ofrecemos una amplia gama de soluciones enzimáticas, que incluyenAceite de jengibre,Polvo de aguacate seco orgánico de suministro de fábrica, yPrecio al por mayor a granel 100% proteína de suero. Contáctenos para discutir sus requisitos e iniciar una negociación de adquisición.

Referencias

  • Documentación de enzimas: https://enzymejs.github.io/enzyme/
  • Documentación de React: https://reactjs.org/docs/getting-started.html
Envíeconsulta