我从事的项目结构如下:
projects/warehouse/core
projects/warehouse/products/bottles
projects/warehouse/products/boxes
在这个项目中,应用程序逻辑、gem 等都在core
应用程序中。我已经boxes
为 rspec 设置了这样的:
projects/warehouse/products/boxes/spec
/factories
/models
该factories
目录包含cubics.rb
:
FactoryGirl.define do
factory :cubic
id 1
dimension 12
end
end
该models
目录包含cubic_spec.rb
:
require 'spec_helper'
describe Boxes::Cubic do
it "has a valid factory" do
FactoryGirl.create(:cubic).should be_valid
end
end
该Cubic
模型位于products/boxes/app/models/boxes/cubic.rb
.
module Boxes
class Cubic < BoxExBase
self.table_name = 'containers'
#validation stuff goes here
end
end
简单明了。当我执行时,rspec ../products/boxes/spec/models/cubic_spec.rb
我得到 ArgumentError: Factory not registered:cubic. 我尝试在 spec_helper.rb 中要求 factory_girl_rails。我试过修改 spec_helper.rb w/
FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
FactoryGirl.find_definitions
中的 gemfilecore
包含gem 'factory_girl_rails'
在开发、测试组中。我什至试图让工厂提出错误,但这甚至没有发生。因此,工厂似乎甚至没有被加载。我需要做什么才能加载和注册这个工厂?