Часть нашего кода чувствительна ко времени, и нам нужно иметь возможность зарезервировать что-то, а затем выпустить его через 30-60 секунд и т.д., Что мы можем просто сделать time.Sleep(60 * time.Second)
Я только что реализовал интерфейс времени и во время теста использую зашитую реализацию интерфейса времени, похожую на это обсуждение голаньянок.
Однако time.Now()
вызывается в нескольких местах, что означает, что нам нужно передать переменную, чтобы отслеживать, сколько времени мы на самом деле спали.
Мне было интересно, есть ли альтернативный способ заглушить time.Now()
во всем мире. Может быть, сделать системный вызов, чтобы изменить системные часы?
Может быть, мы можем написать наш собственный пакет времени, который в основном оборачивает пакет времени, но позволяет нам его менять?
Наша текущая реализация работает хорошо, я начинающий, и мне любопытно посмотреть, есть ли у кого-нибудь другие идеи?