Я работаю над проектом со структурой вроде:
projects/warehouse/core
projects/warehouse/products/bottles
projects/warehouse/products/boxes
В этом проекте логика приложения, драгоценные камни и т.д. находятся в приложении 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 не зарегистрировано: куб. Я пробовал, требуя factory_girl_rails в spec_helper.rb. Я пробовал модифицировать spec_helper.rb w/
FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
FactoryGirl.find_definitions
gemfile в core
содержит gem 'factory_girl_rails'
в тестовых группах разработки. Я даже попытался получить Factory, чтобы вызвать ошибку, но этого даже не происходит. Поэтому Factory, похоже, даже не загружается. Что мне нужно сделать, чтобы загрузить этот Factory и зарегистрировать?