Qual è il modo migliore per scrivere il test dell'unità per il codice che ottiene l'ora corrente? Ad esempio alcuni oggetti potrebbero essere creati solo in giorni lavorativi, altri oggetti tengono conto dell'ora corrente quando controllano le autorizzazioni per eseguire alcune azioni, ecc.Codice di verifica dell'unità che ottiene l'ora corrente
Immagino che dovrei prendere in giro Data e oggi e Time.now. È giusto questo approccio?
Aggiornamento: Entrambe le soluzioni (a) Time.is e (b) Time.stubs (: ora) .returns (t) di lavoro. (a) è un approccio molto bello ma (b) la soluzione sarà più coerente con altri codici di test.
A questo question un autore chiede una soluzione generale. Per Ruby, nella mia opzione due soluzioni di cui sopra sono simpler e quindi meglio di estrarre il codice che ottiene data/ora corrente.
BTW vi consiglio di usare Chronic per ottenere il tempo desiderato, per esempio
require 'Chronic'
mon = Chronic.parse("next week monday")
Time.stubs(:now).returns(mon)
Perché questa comunità wiki? – Elie
Perché non può essere wiki della comunità? –
Può, ma con la maggior parte delle domande di programmazione specifiche, non è fatto in modo che le persone possano ottenere la reputazione per questo. Non ho una risposta, quindi non mi riguarda, ma ero curioso. – Elie