PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Чем отличаются типы тестирования и как это влияет на код?

Продвинутые темы

Тесты делятся на уровни — модульные (unit), интеграционные, end-to-end (E2E) — плюс специализированные виды. Разные уровни ловят разные ошибки и влияют на стиль кода.

Пирамида тестирования

Unit (модульные)

Проверяют отдельную функцию/компонент в изоляции. Быстрые, многочисленные.

expect(sum(2, 3)).toBe(5);

Инструменты: Jest, Vitest.

Integration (интеграционные)

Проверяют взаимодействие нескольких модулей (компонент + хук + API-мок).

Инструменты: Testing Library.

E2E (сквозные)

Проверяют весь сценарий в реальном браузере, как пользователь. Медленные, но реалистичные.

Инструменты: Playwright, Cypress.

Специализированные виды

  • Снапшот — фиксируют разметку/вывод.
  • Регрессионные визуальные — сравнивают скриншоты.
  • Нагрузочные / производительность.
  • Contract-тесты — согласованность API.

Как влияет на код

Тестируемость подталкивает к чистым функциям, слабой связанности, инъекции зависимостей — код становится модульнее.

Пирамида

Много быстрых unit, меньше интеграционных, ещё меньше медленных E2E.

Коротко для собеседования

Уровни: unit (изолированные функции, быстро), integration (взаимодействие модулей), E2E (полный сценарий в браузере, медленно). Плюс снапшоты, визуальные, нагрузочные. Пирамида: много unit, мало E2E. Тестируемость улучшает архитектуру.

Другие вопросы раздела