Тест должен падать при нарушении контракта поведения класса, включая значимые взаимодействия с зависимостями, а не при любом внутреннем рефакторинге.
Расскажите про написание юнит-тестов: когда, по-вашему, тест должен падать? Что именно должен проверять юнит-тест для класса, протестированного по лондонской школе (со всеми замоканными зависимостями)?
Тест должен падать при нарушении контракта поведения класса, включая значимые взаимодействия с зависимостями, а не при любом внутреннем рефакторинге.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Тест должен падать при нарушении контракта поведения класса, включая значимые взаимодействия с зависимостями, а не при любом внутреннем рефакторинге.
В mockist-подходе проверяют результат, изменение собственного состояния и обязательные вызовы collaborators с нужными аргументами. Не стоит фиксировать случайный порядок и число внутренних операций, если они не являются частью контракта. Моки не доказывают совместимость с реальными зависимостями, поэтому нужны отдельные интеграционные проверки.