Настройте Vite2 с Vitest и Jest для тестирования в реагирующем приложении.

Одним из преимуществ инструмента сборки Vite является то, что это невероятно быстрый инструмент сборки JavaScript для разработки веб-приложений с использованием современных интерфейсных фреймворков, таких как React, Vue, Svelte и т. д. За последние 2 года мы наблюдаем растущий рост сообщества пользователей Vite.

Я впервые услышал о Vite, когда работал разработчиком Vue/Nuxt в 2020 году. Как человек, которого я очень уважаю, твит Эвана Ю о Vite был всем, что мне нужно было увидеть, чтобы узнать, насколько актуален Vite.

Vite — отличный инструмент для сборки JS, и он молниеносно быстр. Хотя я не использовал его очень долго, я уже в восторге от его производительности и множества функций, которые он предлагает. Он имеет очень простой и понятный интерфейс API.

В этом уроке я научу вас, как настроить проект Vite для тестирования приложения React с использованием библиотеки Jest, testing-library/react и vitest. Шаги следующие

Эшафот новый проект

Используйте эту ссылку, чтобы узнать, как создать новый проект реагирования с помощью инструмента сборки Vite и запустить сервер разработки.

Установить зависимости

После установки всех необходимых пакетов и подтверждения того, что сервер разработки запущен, установите следующие дополнительные зависимости:

yarn add jest @types/jest @testing-library/jest-dom @testing-library/react @testing-library/user-event @vitest/ui jsdom@latest vitest@latest -D

Vitest — это молниеносно быстрая среда модульного тестирования на базе Vite. "Узнать больше"

Обновите свой package.json скрипт

Откройте файл package.json, который находится в корне вашего проекта. Добавьте следующие записи в объект scripts:

// File: package.json

"scripts": {
	// other entries
	"test": "vitest",
	"coverage": "vitest run --coverage"
},

Тест установки

Создайте новую папку и назовите ее test в папке src вашего проекта. Внутри тестовой папки добавьте новый файл и назовите его setup.ts. Внутри этого файла добавьте следующее:

// File: src/test/setup.ts
import "@testing-library/react"

Добавьте Vitest конфигураций

Создайте новый файл vitest.config.ts в корне вашего проекта. Добавьте следующий контент

// File: vitest.config.ts
import { configDefaults, defineConfig } from "vitest/config";
export default defineConfig({
 test: {
  ...configDefaults,
  environment: "jsdom",
  globals: true,
  setupFiles: "./src/test/setup.ts",
 // you might want to disable it, if you don't have tests that rely on CSS
 // since parsing CSS is slow
  css: false,
 },
});

Добавьте тестовые файлы

Теперь вы можете создать файл с суффиксом .test.tsx или .test.ts в любом месте каталога вашего проекта. В этих файлах вы будете писать свой тест. Например: я создам файл fn.ts для хранения простых вспомогательных функций, которые я могу использовать в своем проекте. Я создам функцию для преобразования объекта в параметр поиска URL. Это выглядит следующим образом:

// File: src/util/fn.ts

export function objectToSearchParam(
	obj: string | string[][] | Record<string, string>
) {
	return new URLSearchParams(obj);
}

Затем я создаю файл fn.test.ts для проверки файла fn в том же каталоге и добавляю следующее:

// File: src/util/fn.test.ts

/**
 * @jest-environment jsdom
 */

import { objectToSearchParam } from "./fn";

describe("Util functions", () => {
	it("converts object to url search parameter", () => {
		const searchParam = objectToSearchParam({
			key: "value",
			key2: "value2",
		});
		expect(searchParam).toBe(`?key=value&key2=value2`);
	});
});

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

Запустить тесты

Чтобы запустить тест, используйте следующие команды оболочки

yarn test

После запуска тестовой команды я получаю следующее:

Было ли это полезно? Оставляйте комментарии и ставьте пальцы вверх!