Добавление тестирования в Next.js приложения: руководство по внедрению Unit Test

В этом разделе мы проведем вас через процесс повышения Next.js качества вашего приложения путем добавления модульных и интеграционных тестов. Мы будем использовать библиотеки тестирования, такие как Jest и, Testing Library чтобы обеспечить надежность и функциональность вашего приложения.

Модульное тестирование с Jest

Jest является популярным testing library для выполнения модульных тестов в JavaScript приложениях. Вот как вы можете добавить модульные тесты в свое Next.js приложение, используя Jest:

Установите Jest и связанные библиотеки:

npm install jest @babel/preset-env @babel/preset-react babel-jest react-test-renderer --save-dev

Создайте Jest файл конфигурации( jest.config.js):

module.exports = {  
  testEnvironment: 'jsdom',  
  transform: {  
    '^.+\\.jsx?$': 'babel-jest',  
  },  
};  

Напишите модульные тесты, используя Jest:

import { sum } from './utils';  
  
test('adds 1 + 2 to equal 3',() => {  
  expect(sum(1, 2)).toBe(3);  
});  

Интеграционное тестирование с Testing Library

Testing Library — мощный инструментарий для тестирования взаимодействия пользователей в приложениях. Вот как вы можете добавить интеграционные тесты в свое Next.js приложение, используя Testing Library:

Установите Testing Library и связанные библиотеки:

npm install @testing-library/react @testing-library/jest-dom --save-dev

Напишите интеграционные тесты, используя Testing Library:

import { render, screen } from '@testing-library/react';  
import App from './App';  
  
test('renders learn react link',() => {  
  render(<App />);  
  const linkElement = screen.getByText(/learn react/i);  
  expect(linkElement).toBeInTheDocument();  
});  

Заключение

В этом разделе вы познакомились с тем, как повысить Next.js качество вашего приложения путем добавления модульных и интеграционных тестов с использованием библиотек тестирования, таких как Jest или Testing Library. Выполняя тесты, вы можете обеспечить надежность и функциональность вашего приложения, одновременно эффективно обнаруживая и устраняя проблемы.