Начните с контракта функции: нормальный сценарий, границы, неверные данные и ошибки зависимостей. Конкретные corner cases определяются типами и инвариантами, а не универсальным списком.
Если бы ты сам писал юнит-тесты на свой код, какие бы написал? Какие corner cases проверил бы?
Начните с контракта функции: нормальный сценарий, границы, неверные данные и ошибки зависимостей. Конкретные corner cases определяются типами и инвариантами, а не универсальным списком.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Начните с контракта функции: нормальный сценарий, границы, неверные данные и ошибки зависимостей. Конкретные corner cases определяются типами и инвариантами, а не универсальным списком.
Для коллекций проверьте пустой ввод, один элемент, повторы и максимальные размеры; для чисел — ноль, знак и переполнение; для времени — границы интервалов и отмену. Проверьте отсутствие нежелательной мутации входа.
Для конкурентного кода нужны завершение, гонки, повторные вызовы и идемпотентность. В unit-тестах внешние сервисы подменяют; таймауты лучше проверять управляемыми часами, а не долгими sleep. Без исходного кода это план выбора проверок, не готовое покрытие.