ruby-on-rails - FactoryGirl : Creating dynamic factories with parameters?

标签 ruby-on-rails rspec factory-bot

我有三个工厂要烘干。它们看起来像这样:

factory :sequenced_stamps_by_years, class: Stamp do
  ...
  sequence(:day_date) { |n| n.years.ago }
end

factory :sequenced_stamps_by_months, class: Stamp do
  ...
  sequence(:day_date) { |n| n.months.ago }
end

factory :sequenced_stamps_by_weeks, class: Stamp do
  ...
  sequence(:day_date) { |n| n.weeks.ago }
end

我怎样才能把它弄干?我希望能够像这样创建它们:
FactoryGirl.create_list(:sequenced_stamps_by_x, 4, x: "weeks") ## <- So that i can decide whether I want weeks, days, years, or months ago.

这可能吗?

最佳答案

如果您不喜欢继承方法,则还有一种使用参数的替代方法。基本上:

factory :stamps do
  ignore do
    interval :years # possible values => :years, :months, :weeks
  end

  sequence(:date_date) { |n| n.send(interval).ago }

  # rest of attributes here
end

现在你可以这样做:
FactoryGirl.create(:stamps, :interval => :months)

或者
FactoryGirl.create(:stamps)

默认为年。

您可以在 Factory Girl transient attributes 中找到所有这些

关于ruby-on-rails - FactoryGirl : Creating dynamic factories with parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384935/

相关文章:

ruby-on-rails - rails 上的 ruby : mock and stub library

ruby-on-rails - Rspec parallel_test Controller 规范随机失败

ruby-on-rails - Factorygirl 通过模特有一个关联

ruby-on-rails - FactoryGirl 如何创建一个由关联回调创建的实例

ruby-on-rails - Factory-bot - 如何建立关联和嵌套属性

ruby-on-rails - Ruby 2.0 + Rails 4.0.0.RC1 + Bootstrap + Heroku

ruby-on-rails - Amazon S3 直接上传无法识别文件的内容类型

ruby-on-rails - RSPEC 测试 Controller 渲染 View ?

ruby-on-rails - allowed_pa​​rams - rails4 和inhered_resources

ruby-on-rails - rspec 不报告错误的行号