Я написал функцию для своей библиотеки Rubikon, которая отображает throbber (вращение —, как вы могли видеть в других консольных приложениях), пока работает какой-либо другой код.Критический код времени тестирования
Чтобы проверить эту функцию, я фиксирую вывод тромбона в StringIO
и сравниваю его с ожидаемым значением. Поскольку показания throbber отображаются только до тех пор, пока выполняется другой код, содержимое IO
становится длиннее, когда код работает дольше. В моих тестах я делаю простой sleep 1
и должен иметь постоянную задержку в 1 секунду. Это работает большую часть времени, но иногда (по-видимому, из-за внешних факторов, таких как тяжелая нагрузка на CPU) он терпит неудачу, потому что код не работает в течение 1 секунды, а немного больше, так что throbber печатает несколько дополнительных персонажи.
Мой вопрос: есть ли возможность проверить такие критические моменты времени в Ruby?
Звучит неплохо, я проверю это. – Koraktor