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

Настройка среды тестирования

Приложение Create React поставляется с предварительно настроенным Jest. Если вы не используете приложение Create React, вы можете установить Jest вручную.

npm install --save-dev jest

Вам также необходимо установить библиотеку тестирования React.

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

Написание вашего первого теста

Давайте напишем тест для простого компонента приветствия.

import React from 'react';

function Greeting({ name }) {
  return <h1>Hello, {name}!</h1>;
}

export default Greeting;

Мы будем использовать функцию render библиотеки тестирования React для рендеринга компонента и screen для запроса визуализированного вывода.

import React from 'react';
import { render, screen } from '@testing-library/react';
import Greeting from './Greeting';

test('renders a greeting', () => {
  render(<Greeting name="John" />);
  const greetingElement = screen.getByText(/hello, john/i);
  expect(greetingElement).toBeInTheDocument();
});

Запуск тестов

Вы можете запустить свои тесты с помощью команды jest.

npx jest

Тестирование взаимодействия с пользователем

Библиотека тестирования React предоставляет несколько функций для имитации взаимодействия с пользователем. Давайте напишем тест для кнопки, которая увеличивает счетчик.

import React from 'react';
import { render, screen, fireEvent } from '@testing-library/react';
import Counter from './Counter';

test('increments counter', () => {
  render(<Counter />);
  const button = screen.getByText('Increment');
  fireEvent.click(button);
  const counter = screen.getByText('Count: 1');
  expect(counter).toBeInTheDocument();
});

Заключение

Тестирование — важнейший аспект разработки программного обеспечения, обеспечивающий правильность вашего кода. С библиотекой тестирования Jest и React тестирование приложений React.js становится проще и приятнее.

В следующем посте мы рассмотрим, как интегрировать сторонние библиотеки в ваше приложение React.js. А пока удачного кодирования!