Подмените источник времени контролируемыми значениями и проверьте длительность, результат функции, передачу аргументов и поведение при исключении. Реальный sleep делает тест медленным и нестабильным.
Как протестировать декоратор измерения времени?
Подмените источник времени контролируемыми значениями и проверьте длительность, результат функции, передачу аргументов и поведение при исключении. Реальный sleep делает тест медленным и нестабильным.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Подмените источник времени контролируемыми значениями и проверьте длительность, результат функции, передачу аргументов и поведение при исключении. Реальный sleep делает тест медленным и нестабильным.
Если декоратор использует perf_counter, настройте два последовательных результата, например 10.0 и 10.25, и ожидайте длительность 0.25. Подменять нужно имя в модуле декоратора. Отдельно проверьте, что вызываемая функция исполнилась один раз, её исключение не проглочено и метаданные сохранены через wraps. Если время должно фиксироваться даже при ошибке, это проверяется отдельным случаем. Для async-декоратора измерение должно охватывать await, а не только создание coroutine-объекта.