Как проверить нумерацию страниц в компонентах React с помощью Enzyme?

Nov 11, 2025

Оставить сообщение

Доктор Эмили Картер
Доктор Эмили Картер
Будучи директором по исследованиям в области здоровья в Asclepius, я возглавляю нашу команду в разработке передовых порошков экстракта растений. Имея более десятилетия опыта в химии натуральных продуктов, я увлечен созданием инновационных решений, которые используют силу природы.

Тестирование пагинации в компонентах React — важная часть обеспечения функциональности и удобства использования ваших веб-приложений. Как поставщик ферментов, я воочию убедился, насколько важно иметь надежный процесс тестирования функций нумерации страниц. В этом сообщении блога я поделюсь некоторыми советами и рекомендациями о том, как тестировать нумерацию страниц в компонентах React с помощью Enzyme.

Понимание пагинации в React

Прежде чем мы углубимся в тестирование, давайте быстро рассмотрим, что такое нумерация страниц и как она реализована в React. Пагинация — это метод, используемый для разделения больших наборов данных на более мелкие и более управляемые страницы. В приложении React нумерация страниц часто реализуется с использованием состояния для отслеживания текущей страницы и количества элементов на странице.

Вот простой пример компонента React с нумерацией страниц:

импортировать React, {useState} from'react'; const PaginationComponent = ({ items }) => { const [currentPage, setCurrentPage] = useState(1); константные элементыPerPage = 10; const indexOfLastItem = currentPage * itemsPerPage; const indexOfFirstItem = indexOfLastItem - itemsPerPage; const currentItems = items.slice(indexOfFirstItem, indexOfLastItem); const paginate = (pageNumber) => setCurrentPage(pageNumber); return ( <div> {currentItems.map((item) => ( <div key={item.id}>{item.name</div> ))} {/* Кнопки пагинации */} <button onClick={() => paginate(currentPage - 1)} Disabled={currentPage === 1}> Предыдущий </button> <button onClick={() => paginate(currentPage + 1)} Disabled={indexOfLastItem >= items.length}> Далее </button> </div> ); }; экспортировать компонент PaginationComponent по умолчанию;

Настройка фермента для тестирования

Enzyme — это утилита тестирования JavaScript для React, которая упрощает утверждение, манипулирование и просмотр выходных данных ваших компонентов React. Чтобы начать работу с Enzyme, вам необходимо установить его вместе с адаптером для вашей версии React.

npm install --save-dev фермент фермент-адаптер-реакция-16

Вот как вы можете настроить Enzyme в тестовом файле:

импортировать фермент, {мелко} из «фермента»; импортировать адаптер из «enzyme-adapter-react-16»; Enzyme.configure({адаптер: новый адаптер() });

Тестирование функциональности нумерации страниц

Теперь, когда у нас настроен наш компонент и фермент, давайте начнем тестировать функциональность нумерации страниц.

Тестирование первоначального рендеринга

Первое, что мы хотим протестировать, — это первоначальный рендеринг компонента. Мы проверим, правильное ли количество элементов отображается на первой странице.

импортировать React из 'реагировать'; импортировать PaginationComponent из './PaginationComponent'; импортировать фермент, {мелко} из «фермента»; импортировать адаптер из «enzyme-adapter-react-16»; Enzyme.configure({адаптер: новый адаптер() }); описать('PaginationComponent', () => { const items = Array.from({ length: 20 }, (_, i) => ({ id: i, name: `Item ${i}` })); it('должно отображать правильное количество элементов на первой странице', () => { const wrapper = small(<PaginationComponent items={items} />); ожидаем(wrapper.find('div').length).toBe(10 + 2 // 10 элементов + 2 кнопки });

Тестирование кнопок пагинации

Далее мы проверим кнопки нумерации страниц, чтобы убедиться, что они работают должным образом. Нажмем кнопку «Далее» и проверим, отображается ли следующий набор элементов.

it('должен отображать следующий набор элементов при нажатии кнопки "Далее"', () => { const wrapper = small(<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); // Проверяем, обновилось ли состояние ожидать (wrapper.find ('div'). length). toBe (10 + 2 });

Мы также можем протестировать кнопку «Назад» аналогичным образом:

Factory Supply Organic Dried Avocado PowderGinger Oil

it('должен отображать предыдущий набор элементов при нажатии кнопки «Предыдущий»', () => { const wrapper = small(<PaginationComponent items={items} />); const nextButton = wrapper.find('button').at(1); nextButton.simulate('click'); const prevButton = wrapper.find('button').at(0); prevButton.simulate('click'); ожидать(wrapper.state('currentPage')).toBe(1); ожидать(wrapper.find('div').length).toBe(10 + 2);

Тестирование отключенных кнопок

Мы также должны проверить, что кнопки пагинации отключены, когда они должны быть. Например, кнопку «Предыдущий» следует отключить на первой странице, а кнопку «Далее» — на последней странице.

it('следует отключить кнопку «Предыдущая» на первой странице', () => { const wrapper = small(<PaginationComponent items={items} />); const prevButton = wrapper.find('button').at(0); ожидаем(prevButton.prop('disabled')).toBe(true); }); it('следует отключить кнопку «Далее» на последней странице', () => { const wrapper = small(<PaginationComponent items={items} />); // Переход на последнюю страницу while (wrapper.find('button').at(1).prop('disabled') === false) { Wrapper.find('button').at(1).simulate('click'); } const nextButton = обертка.find('кнопка').at(1); ожидать(nextButton.prop('отключено')).toBe(true });

Расширенные сценарии тестирования

Тестирование крайних случаев

В дополнение к базовой функциональности нам также следует протестировать некоторые крайние случаи. Например, что произойдет, если элементов нет или их меньше, чем элементов на странице?

it('должен обрабатывать пустой список элементов', () => { const wrapper = small(<PaginationComponent items={[]} />);expect(wrapper.find('div').length).toBe(2); // Только кнопки }); it('должен обрабатывать список элементов, меньших, чем элементов на странице', () => { const smallItems = Array.from({ length: 5 }, (_, i) => ({ id: i, name: `Item ${i}` })); const Wrapper = мелко(<PaginationComponent items={smallItems} />); ожидаем(wrapper.find('div').length).toBe(5 + 2);

Тестирование с использованием разных элементов на странице

Мы также можем протестировать компонент с разными значениями дляэлементов на странице. Это может быть полезно, если ваше приложение позволяет пользователю изменять количество элементов, отображаемых на странице.

it('должно отображать правильное количество элементов с различным значением itemsPerPage', () => { const CustomPaginationComponent = ({ items }) => { const [currentPage, setCurrentPage] = useState(1); const itemsPerPage = 5; // Остальная часть кода компонента... }; const Wrapper = мелко(<CustomPaginationComponent items={items} />); ожидать (wrapper.find ('div'). length). toBe (5 + 2 });

Заключение

Тестирование нумерации страниц в компонентах React с помощью Enzyme — важный шаг в обеспечении надежности и функциональности вашего приложения. Следуя советам и примерам из этого поста в блоге, вы сможете написать комплексные тесты для функций нумерации страниц.

Если вы ищете высококачественные ферментные продукты для ваших нужд тестирования, мы здесь, чтобы помочь. Мы предлагаем широкий спектр ферментных растворов, в том числеИмбирное масло,Заводская поставка органического сушеного порошка авокадо, иОптовая цена на 100% сывороточный протеин оптом. Свяжитесь с нами, чтобы обсудить ваши требования и начать переговоры о закупках.

Ссылки

  • Документация по ферментам: https://enzymejs.github.io/enzyme/
  • Документация React: https://reactjs.org/docs/getting-started.html.
Отправить запрос