parte del nostro codice è sensibile al tempo e abbiamo bisogno di qualcosa in grado di riservare e quindi rilasciarlo in 30-60 secondi, ecc, che possiamo solo fare un time.Sleep(60 * time.Second)
C'è un modo semplice per spegnere il tempo. Ora() globalmente in golang durante il test?
ho appena implementato e durante il test l'uso di un implementazione stubbed dell'interfaccia time, simile a this golang-nuts discussion.
Tuttavia, time.Now()
viene chiamato in più siti, il che significa che è necessario passare una variabile in giro per tenere traccia di quanto tempo abbiamo effettivamente dormito.
Mi chiedevo se esiste un modo alternativo per escludere time.Now()
a livello globale. Forse fare una chiamata di sistema per cambiare l'orologio di sistema?
Forse possiamo scrivere il nostro pacchetto di tempo che sostanzialmente avvolge il pacchetto temporale ma ci consente di cambiarlo?
La nostra attuale implementazione funziona bene, sono un principiante e sono curioso di vedere se qualcuno ha altre idee?
Ho creato un pacchetto basato su questa idea: https://github.com/101loops/clock – stephanos
@stephanos dovresti postarlo come risposta separata in quanto è facile non vederlo. Sarebbe utile anche l'uso di esempi sul repository stesso. –