Термин (похожий на многие другие вещи, связанные с Agile) перегружен (означает разные вещи для разных людей). Он претерпел много изменений и теперь субъективен. Некоторые придумали новый термин микротесты, чтобы избежать путаницы.
Ранее это означало тестирование белого ящика на функциональном уровне. Как правило, единица обычно представляет собой поведение, демонстрируемое классом (обычно в качестве метода).
Среди практикующих TDD есть два лагеря
- тестирование на основе взаимодействия изолирует класс от его зависимостей (при условии определенного договора между ними). Зависимости проверяются с помощью их модульных тестов. Модульный тест определяет, как ведет себя юнит. другим даны определенные стимулы
- тестирование на основе состояния тестирует класс вместе с его реальными зависимостями.
В настоящее время я понимаю, что это осознанный выбор для каждого юнит-теста; один стиль не подходит для всех.