ruby-on-rails - 具有特征和动态变量的 Factory Girl create_list

标签 ruby-on-rails testing factory-bot

我正在尝试通过 Factorygirl 回调创建一些额外的记录。它必须使用该工厂中的一个特征,并且必须向它传递一个动态变量。我以为我可以做这样的事情:

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

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

最佳答案

您需要在工厂中定义 transient 。这是我从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

关于ruby-on-rails - 具有特征和动态变量的 Factory Girl create_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078815/

相关文章:

ruby-on-rails - 如何让变量保留 2 位小数

ruby-on-rails - HTTP 请求适用于 Postman 但不适用于 Rails

testing - 不要运行测试任务 - gradle clean build -x test

testing - autotools 在测试失败时输出 test-suite.log 内容

testing - FactoryGirl 并获取所有关联的属性哈希

ruby-on-rails - 如何测试运行 SQL 查询的方法

ruby-on-rails - 尝试使用 HTTParty 或 Net :HTTP (or etc) 连接到 "digest authentication"网络服务

ruby-on-rails - Ruby on Rails - 搜索功能不在一列上返回结果

ios - 为什么我不能在看到警报后立即触摸警报 View 中的按钮?

ruby-on-rails - 具有 has_many 关联的 FactoryGirl build_stubbed 策略