我有以下工厂:
FactoryGirl.define do
factory :task do
due_date 7.days.from_now
end
end
在我的规格中,我以这种方式使用Timecop:
before do
Timecop.freeze(Time.parse("Oct 5 2015"))
end
Time.now和Date.today正如预期的那样在给定时间内存根,但工厂的due_date属性总是根据系统的日期返回,我希望它根据提供的日期返回时空特警。有可能吗?
我使用Ruby 2.2.2,Rails 3.2.22,Timecop 0.8.0和Rspec 3.1.0。
答案 0 :(得分:2)
将值传递给一个块,以便在调用时评估它,而不是在加载工厂定义时。这称为Lazy attributes
,更多关于here
FactoryGirl.define do
factory :task do
due_date { 7.days.from_now }
end
end