为模块内的类定义工厂

时间:2012-11-27 18:20:19

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

我对factory_girl很新,我有以下问题。

我有一个班级说的形式:

class Fruit::Apple < ActiveRecord::Base
  ...
end

假设我需要为这个类创建工厂。我该怎么办?换句话说,工厂有一个set_fixture_class等价物吗?

我的apple_factory.rb如下:

FactoryGirl.define do |f|
  factory 'apple' do
    variety : washington
  end
end

我拥有所有必需的宝石,我的文件夹结构的格式为test/factory/apple_factory.rb。当我执行测试时,我得到uninitialized constant Apple。我在哪里设置类定义?我需要设置工厂助手吗?

1 个答案:

答案 0 :(得分:30)

看起来您正在为模型使用命名空间。

看看这个问题并回答: Using factory_girl_rails with Rspec on namespaced models

Factory.define :apple, :class => Fruit::Apple do |f|
  f.variety 'Fuji'
end