j'essayer de truquer le Date.today
afin de tester un scénario dans mon application rails:essai rspec avec la date fausse
before do
Date.stub(:today).and_return("2010-10-01".to_date)
end
J'ai une portée (j'utilise bijou Squeel) qui est censé trouver l'avenir paiements dans mon DB:
class Payment < ActiveRecord::Base
scope :future, -> { where{payment_date > Date.today} }
end
(je le fais avec un lambda parce que dans le code d'origine du champ d'application utilise un tamiseur, j'ai posté ici un code simplifié.)
Quand je lance la spécification, il semble comme la date est c calculé à l'intérieur du lambda/sql et j'obtiens des résultats pour les paiements qui sont à venir par rapport à la date réelle (à la place mon faux 01/10/10) - pouvez-vous confirmer que j'ai raison? vous avez une suggestion comment je peux tester un tel scénario avec rspec?
belle pierre précieuse, mais il ne résout pas le problème des dates – benams
Ceci est précisément le problème que Timecop a été créé pour résoudre. – zetetic