Расскажите про написание юнит-тестов: когда, по-вашему, тест должен падать? Что именно должен проверять юнит-тест для класса, протестированного по лондонской школе (со всеми замоканными зависимостями)?

Тест должен падать при нарушении контракта поведения класса, включая значимые взаимодействия с зависимостями, а не при любом внутреннем рефакторинге.

Короткий ответ

Что ответить на собеседовании

Тест должен падать при нарушении контракта поведения класса, включая значимые взаимодействия с зависимостями, а не при любом внутреннем рефакторинге.

Подробный разбор

Ответ с пояснениями

Тест должен падать при нарушении контракта поведения класса, включая значимые взаимодействия с зависимостями, а не при любом внутреннем рефакторинге.

В mockist-подходе проверяют результат, изменение собственного состояния и обязательные вызовы collaborators с нужными аргументами. Не стоит фиксировать случайный порядок и число внутренних операций, если они не являются частью контракта. Моки не доказывают совместимость с реальными зависимостями, поэтому нужны отдельные интеграционные проверки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее