2017-02-03 2 views
1

J'ai des spécifications d'échec relatives au temps. Je comprends que les temps sont calculés en secondes à partir de l'époque, mais je voudrais que cette spécification passe si les représentations d'objets sont assez proches.Tests RSpec Objets temporels

Par exemple:

expect(@model.end_date).to eq end_date 

expected: Wed, 08 Feb 2017 20:13:30 UTC +00:00 
    got: Wed, 08 Feb 2017 20:13:30 UTC +00:00 

Quelqu'un at-il des conseils sur le temps de test de sorte qu'un léger décalage ne manquera pas le test?

Répondre

2

Vous pouvez utiliser intégré dans RSpec be_within matcher, qui peut être utilisé aussi pour les nombres à virgule flottante et d'autres types de données sujettes à de légers écarts:

expect(@model.end_date).to be_within(1.second).of(end_date) 
+0

Légende! Je vous remercie! – fbelanger

+0

Notez également que si vous deviez comparer des chaînes au lieu de représenter numériquement les dates, vous pouvez utiliser un programme de regex. – labyrinth