Пирамиду тестирования придумали очень давно, ещё для бэкенда, и она делит всё тестирование на типы. Обычно выделяют три типа (на картинке указанно 4, т.к. я выделил SnapShot-testing в отдельный вид тестирования):

Unit-test являются наиболее быстрым и экономичным способом тестирования программного обеспечения, так как они изолированы от других компонентов и не имеют зависимостей от внешних факторов. Поэтому их использование в проекте должно быть максимальным, чтобы обеспечить максимальную проверку правильности работы отдельных компонентов программного обеспечения.

Integration-test являются более медленным и менее экономичным способом тестирования, так как они имеют зависимости от других компонентов и не изолированы от внешних факторов. Они используются для проверки правильности работы компонентов взаимодействующих между собой.

End-to-End ( e2e-test ) тесты являются наиболее медленным и дорогостоящим способом тестирования, так как они проверяют работу всей системы как единого целого и требуют запуска всех компонентов программного обеспечения. Они используются для проверки правильности работы системы в целом, включая все ее компоненты и зависимости.

Для Unit-тестирования используются следующие библиотеки:

  1. Jest - это инструмент для тестирования JavaScript-приложений, разработанный Facebook. Он предоставляет API для написания и запуска тестовых методов и поддерживает асинхронное тестирование, а также встроенные средства для генерации отчетов и покрытия кода тестами.
  2. Vitest -это фреймворк для тестирования JavaScript, разработанный с учетом производительности и простоты использования. Он поддерживает тестирование на основе Vite, что обеспечивает быструю сборку и запуск тестов.
  3. React-testing-library : библиотека для тестирования React-компонентов, которая поощряет тестирование пользовательского интерфейса с точки зрения пользователя. Она предоставляет утилиты для рендеринга компонентов, имитации событий и проверки их состояния.

Для Integration и E2E используется Puppeteer . Имитация выполнения действий вместо пользователя (клики на кнопки и т.д.)


Назад