次のような構造のプロジェクトに取り組んでいます。
projects/warehouse/core
projects/warehouse/products/bottles
projects/warehouse/products/boxes
このプロジェクトでは、アプリケーション ロジック、gem などはすべてcore
アプリケーション内にあります。次のようなrspecをboxes
セットアップしました:
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: Cubase が発生します。spec_helper.rb で factory_girl_rails を要求しようとしました。spec_helper.rb w/ を変更してみました
FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
FactoryGirl.find_definitions
の gemfile は、開発、テスト グループにcore
含まれています。gem 'factory_girl_rails'
工場にエラーを発生させようとさえしましたが、それは起こりません。したがって、ファクトリはロードされているようにも見えません。このファクトリをロードして登録するにはどうすればよいですか?