为模块内的类定义工厂

div*_*lwz 18 unit-testing ruby-on-rails ruby-on-rails-3 factory-bot

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

我有一个班级说的形式:

class Fruit::Apple < ActiveRecord::Base
  ...
end
Run Code Online (Sandbox Code Playgroud)

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

我的apple_factory.rb如下:

FactoryGirl.define do |f|
  factory 'apple' do
    variety : washington
  end
end
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*gle 30

看起来您正在为模型使用名称空间.

看一下这个问题和答案: 在命名空间模型上使用带有Rspec的factory_girl_rails

Factory.define :apple, :class => Fruit::Apple do |f|
  f.variety 'Fuji'
end
Run Code Online (Sandbox Code Playgroud)