Unit-тест проверяет небольшой участок логики с управляемыми зависимостями. Интеграционный или компонентный тест проверяет совместную работу частей, часто с реальной БД или брокером в контейнере.
В чем разница между классическими unit-тестами и компонентными/интеграционными тестами с использованием инструментов вроде Testcontainers?
Unit-тест проверяет небольшой участок логики с управляемыми зависимостями. Интеграционный или компонентный тест проверяет совместную работу частей, часто с реальной БД или брокером в контейнере.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Unit-тест проверяет небольшой участок логики с управляемыми зависимостями. Интеграционный или компонентный тест проверяет совместную работу частей, часто с реальной БД или брокером в контейнере.
Testcontainers помогает поднимать изолированные зависимости, но сам по себе не определяет уровень теста. Такие проверки обнаруживают ошибки SQL, сериализации и конфигурации, которые mocks могут скрыть, но выполняются медленнее. Нужны изоляция данных, фиксированные версии образов и отсутствие обращений к production-сервисам.