Factory Girl create_list包含特征和动态变量

时间:2017-02-06 22:57:48

标签: ruby-on-rails testing factory-bot

我试图从Factorygirl回调中创建一些额外的记录。它必须使用该工厂中的一个特征,并且必须将动态变量传递给它。我以为我可以这样做:

create_list(:some_factory, 5, :some_trait, dynamic_variable: 1)

但我得到一个未定义的方法`dynamic_variable ='在ActiveRecord对象上

1 个答案:

答案 0 :(得分:4)

您需要在工厂中定义瞬态。这是一个例子,我是从wiki复制的

factory :user do
  transient do
    rockstar true
    upcased  false
  end

  name  { "John Doe#{" - Rockstar" if rockstar}" }
  email { "#{name.downcase}@example.com" }

  after(:create) do |user, evaluator|
    user.name.upcase! if evaluator.upcased
  end
end

create_list(:user, 10, upcased: true).name