Вопрос с собеседования · Spring

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

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

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

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

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

Подробно

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

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

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

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

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

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

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

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

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

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

Разбор темы

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

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования