Как протестировать декоратор измерения времени?

Подмените источник времени контролируемыми значениями и проверьте длительность, результат функции, передачу аргументов и поведение при исключении. Реальный sleep делает тест медленным и нестабильным.

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

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

Подмените источник времени контролируемыми значениями и проверьте длительность, результат функции, передачу аргументов и поведение при исключении. Реальный sleep делает тест медленным и нестабильным.

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

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

Подмените источник времени контролируемыми значениями и проверьте длительность, результат функции, передачу аргументов и поведение при исключении. Реальный sleep делает тест медленным и нестабильным.

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

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

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

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

Подробнее