【问题标题】:FactoryGirl - create_list increments parameter for each objectFactoryGirl - create_list 为每个对象增加参数
【发布时间】:2017-07-13 18:03:50
【问题描述】:

我正在尝试以某种方式使用 RSpec 的 create_list,对于特定列,每个对象都接收前一个对象的值 + 1。

如果 Rails 接受 ++ 表示法,它会是这样的:

create_list :entity, 10, priority: priority++

我尝试使用序列,但问题是序列永远不会重置。我需要优先级总是从 1 开始。

我怎样才能做到这一点?

提前致谢。

【问题讨论】:

  • 可以贴一下这条线的周边吗?
  • trait :with_10_recipients do after(:create) do |flow| create_list :flow_recipient, 10, flow: flow end end

标签: ruby-on-rails ruby-on-rails-4 rspec factory-bot rspec-rails


【解决方案1】:

我认为create_list 不可能做到这一点。由于方法调用在 Ruby 中的工作方式,您传递给 create_list 的参数会立即被评估,并且不会为正在创建的每个新 Entity 重新评估。

这个怎么样?

(1..10).map do |priority|
  create :entity, priority: priority
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多