0

我有以下工厂:

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 属性始终根据系统日期返回,我希望它根据 Timecop 中提供的日期返回。可能吗?

我正在使用 Ruby 2.2.2、Rails 3.2.22、Timecop 0.8.0 和 Rspec 3.1.0。

4

1 回答 1

2

将值传递给一个块,以便在调用时评估它,而不是在加载工厂定义时。这就是所谓Lazy attributes的,更多关于这里

FactoryGirl.define do
  factory :task do
    due_date { 7.days.from_now }
  end
end
于 2015-10-13T18:58:30.267 回答