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

Чем unit-тест отличается от интеграционного?

JuniorТестирование Spring BootSpringTestcontainers
Ещё спрашивают так:
  • Чем unit-тест отличается от интеграционного?
Коротко

Unit-тест проверяет изолированную логику без внешних зависимостей (моки), быстро. Интеграционный — что компоненты правильно связаны между собой и с реальными системами: база, брокер, HTTP.

  • Unit — миллисекунды, тысячи штук
  • Интеграционный в Spring — контекст, Testcontainers
  • Оба нужны: unit не поймает ошибку в SQL или маппинге

А ещё Сквозные — через всю систему, их мало

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

Подробно

Разница в цене и в том, что именно проверяется. Unit-тест выполняется за миллисекунды и не требует контекста Spring, поэтому таких тестов делают много — они закрывают бизнес-правила. Интеграционный поднимает контекст или контейнер с базой, работает секунды и отвечает на вопросы, которые unit-тест закрыть не может: правильно ли отображается сущность, работает ли миграция, тот ли запрос порождает репозиторий. Отсюда форма пирамиды: широкое основание быстрых тестов, меньше интеграционных, единицы сквозных.

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

  • Различие объёма и зависимостей.

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

  • Поднимать контекст приложения для проверки чистой бизнес-логики.
  • Строить набор из одних сквозных тестов.

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

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

Показать варианты и ответ
  • ✓Unit проверяет небольшую единицу логики изолированно и быстро; интеграционный проверяет связку компонентов, включая базу, брокер или контекст приложения
  • ✗Unit-тесты пишет разработчик, интеграционные — тестировщик
  • ✗Unit-тест проверяет один класс, интеграционный — один метод
  • ✗Разница только в используемой библиотеке утверждений

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

  • Что такое slice-тест и когда он уместен?
  • Почему тесты на встроенной базе могут вводить в заблуждение?

Разбор темы

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

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

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

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

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