Ho un metodo che utilizza DateTime.now per eseguire una ricerca su alcuni dati, voglio testare il metodo con varie date ma non so come smistare DateTime. ora né posso farlo funzionare con Timecop (se funziona anche così).Rails - Test di un metodo che utilizza DateTime.now
Con il tempo ho cercato poliziotto
it 'has the correct amount if falls in the previous month' do
t = "25 May".to_datetime
Timecop.travel(t)
puts DateTime.now
expect(@employee.monthly_sales).to eq 150
end
quando corro le specifiche posso vedere che mette DateTime.now dà 2015-05-25T01:00:00+01:00
ma avendo le stesse mette DateTime.Now all'interno del metodo che sto testando uscite 2015-07-24T08:57:53+01:00
(oggi Data). Come posso realizzare questo?
------------------ aggiornamento --------------------------- ------------------------
Stavo configurando i record (@employee, ecc.) In un blocco before(:all)
che sembra aver causato il problema. Funziona solo quando la configurazione viene eseguita dopo il blocco Timecop do
. Perché è così?
Il tuo codice dovrebbe funzionare (ricordati di chiamare 'Timecop.return' quando hai finito). Puoi incollare il corpo del metodo 'monthly_sales'? – tompave
il metodo è irrilevante diverso da quello che chiama DateTime.now –
Quindi temo di non poterti aiutare. – tompave