我尝试伪造Date.today
以测试我的rails应用程序中的场景:
before do
Date.stub(:today).and_return("2010-10-01".to_date)
end
我有一个范围(我正在使用squeel gem),它应该在我的数据库中找到未来的付款:
class Payment < ActiveRecord::Base
scope :future, -> { where{payment_date > Date.today} }
end
(我用lambda做,因为在原始代码中,范围使用了sifter,我在这里发布了一个简化的代码。)
当我运行规范时,似乎日期是在lambda / sql中计算的,我得到的结果是未来的付款与实际日期相比(而不是我的假01/10/10) - 你能否证实我对吗?你有一个建议我如何用rspec测试这样的场景?