ruby-on-rails - 如何使用 factory_girl 创建同一类但具有不同数据的两个对象?

标签 ruby-on-rails ruby factory-bot

我想使用 factory_girl 创建 2 条记录。 一种是水果,第二种是蔬菜。我怎样才能做到这一点? 我知道我可以做一个这样的:

FactoryGirl.define do
  factory :category do
    title ''
  end
end

我还应该运行 create 或其他东西来保存数据吗? 我试过两种方法。都报错了。

首先

FactoryGirl.define do
  factory :category do
    title 'fruits'
    title 'vegetables'
  end
end

第二

FactoryGirl.define do
  factory :category do
    title 'fruits'
  end
  factory :category do
    title 'vegetables'
  end
end

最佳答案

factory_girl 允许您覆盖工厂定义中的数据(或缺少数据)。你可以这样定义你的工厂

FactoryGirl.define do
  factory :category
end

并在规范中像这样使用它:

create :category, title: 'fruits'
create :category, title: 'vegetables'

或者,您可以定义两个不同的工厂:

FactoryGirl.define do
  factory :fruits_category do
    title 'fruits'
  end
  factory :vegetables_category do
    title 'vegetables'
  end
end

像这样使用它们

create :fruits_category
create :vegetables_category

只将数据放在用户期望从工厂名称中获得的数据,以便测试易于理解。

关于ruby-on-rails - 如何使用 factory_girl 创建同一类但具有不同数据的两个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24145476/

相关文章:

ruby-on-rails - 使用 Factory_girl 建立测试中关联

ruby-on-rails - 开发环境中应用程序内部的 Rails FactoryGirl

ruby-on-rails - 使用Rails迁移创建丢失的自动增量属性

jquery - Rails 4 应用程序中的动态可折叠列表

ruby-on-rails - 在生产环境中使用 rails 设置 sunspot solr

ruby - 常见的 Ruby 习语

ruby-on-rails - 列出一个国家的时区

ruby-on-rails - 如何确定 Rails 对象是否标记为_for_destruction?

ruby - 使用 Ruby 向子进程发送消息

ruby-on-rails-4 - 运行 rspec 时未初始化的常量 FactoryGirl,但在控制台中工作