Получить доступ

Чем unit-тест отличается от integration-теста?

JuniorТестирование и логирование
Коротко

Unit-тест проверяет единицу логики изолированно: быстро, без БД и сети, зависимости заменены моками. Интеграционный проверяет связку компонентов с реальной инфраструктурой: БД, брокер, HTTP. Медленнее, но ловит ошибки стыков.

  • Пирамида: много unit, меньше интеграционных, мало end-to-end
  • Интеграционные нужны для репозиториев, миграций, сериализации, брокеров
  • Testcontainers — настоящая БД в Docker для тестов

А ещё Моки всего подряд дают тесты, проверяющие моки, а не код

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Unit-тесты быстрые и их много. Интеграционные тесты дороже, но нужны для репозиториев, миграций, HTTP-контрактов, сериализации и брокеров.

Что хотят услышать

  • Различие по изоляции и скорости.
  • Где нужен каждый вид.

Частые ошибки

  • Мокать всё подряд и не проверить реальный контракт.
  • Поднимать весь Spring context для каждого простого unit-теста.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Unit-тесты медленнее integration-тестов
  • ✓Unit проверяет единицу кода изолированно (быстро, с моками); integration — взаимодействие компонентов и реальных зависимостей
  • ✗Integration-тесты никогда не используют реальную БД
  • ✗Это одно и то же

Что спросят дальше

  • Что такое test pyramid?
  • Когда использовать Testcontainers?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем