Модульное тестирование - это удобная штука. Открытие приложения для реагирования и размещение отладчиков там, где это необходимо, чтобы увидеть, что происходит на определенном этапе, - это допустимый способ тестирования того, что происходит с вашим приложением, но есть способ протестировать ваши функции в вашем приложении, а также понять, будет ли компонент отображать на странице, и это модульное тестирование.
Jest - это среда тестирования, которая хорошо работает с Vue.js, React.js, Angular и другими!
При запуске приложения реакции с:
npm создать приложение для реагирования ‹project_name›
Jest уже установлен в вашем приложении, вы можете протестировать его с самого начала с помощью
npm тест
Теперь, если вы не создали свое приложение для реагирования с помощью create react-app, вам придется установить его отдельно:
npm install - save-dev шутка
Перейдите в свой файл package.json и в скриптах:
скрипты: {
«тест»: «шутка»
Обязательно укажите это там. Теперь вы можете запустить npm test как обычно.
Вы увидите файл App.test.js или, если добавляете его вручную, создайте его в своей папке src. Не забудьте включить:
И:
Скорее всего, вы снова увидите там тест, если вы создали с помощью create response-app, но в противном случае вставите этот код:
Теперь запустим тест npm:
Теперь вы увидите, что тест на рендеринг без сбоев прошел!
Так что здесь происходит? Ну, Jest имитирует компонент, работающий в DOM, и если ваш компонент не смонтирован должным образом, вы получите ошибку:
В этом случае закрывающего тега h1 не было. Незавершенное содержимое JSX. Очень откровенно.
Давайте еще один тест. Мы создадим файл Numbers.js в нашей папке src. Здесь давайте представим функцию, которая складывает два числа вместе, а другая - удваивает число:
И давайте экспортируем его, чтобы мы могли получить к нему доступ в нашем файле App.test.js:
Примечание: вы можете экспортировать по умолчанию только одну функцию за раз, если вы не сгруппируете их все вместе, как в примере.
Давайте импортируем их в наш тестовый файл:
Мы импортируем Numbers, теперь каждая функция в нашем файле Numbers.js будет доступна (пока она экспортирована) путем вызова Numbers.FunctionName.
А теперь давайте напишем несколько тестов:
Хорошо, это немного просто, но я все еще разбираюсь в этом сам. Это поможет вам начать. Чтобы написать тестовые функции:
test («ЧТО ВЫ ХОТИТЕ ПРОИЗОЙТИ ПРИ ВЫЗОВЕ ЭТОЙ ФУНКЦИИ», () = ›expect (functionName (argument1, argument2)). toBe (YOUREXPECTEDOUTCOME))
test () - это функция Jest, которая принимает строку, то, что вы ожидаете, и функцию, вызывающую ожидание (), которая будет содержать вашу функцию с аргументами, которые вы тестируете. Наконец, toBe () будет содержать значение, которое вы ожидаете вернуть для сравнения.
Я буду еще немного поиграться с этим, но вы можете посмотреть репо через Github здесь:
Спасибо, что заглянули!