Come posso scrivere le mie specifiche senza utilizzare il metodo sleep (1.secondo)? Quando rimuovo il sonno, i miei test si interrompono perché restituiscono lo stesso timestamp?Come potrei rspec/testare un campo updated_at senza usare sleep() in ruby?
Ho il seguente metodo della classe:
def skip
qs = find_or_create_by(user_id: user_id)
qs.set_updated_at
qs.n_skip += 1
qs.save!
end
e seguenti specifiche:
qs = skip(user.id)
sleep(1.second)
qs2 = skip(user.id)
qs.should_not be_nil
qs2.should_not be_nil
(qs.updated_at < qs2.updated_at).should be_true
che cosa fa il tuo metodo set_updated_at fare? Non penso che tu stia veramente testando il metodo skip in questo modo, per testare il metodo skip devi verificare il metodo skip: 1: chiama find_or_create_by con i dati dati, 2: chiama set_updated_at sull'oggetto, 3: increments n_skip da 1 e 4: salva l'oggetto qs. Quello che stai testando ora è che set_updated_at imposta il timestamp aggiornato_attuale corretto nel test di un altro metodo – arieljuod