基本モデルを作成し、それらの関連付けと、関連付けられたテーブルを作成するための移行を定義しました。
編集-私が特にテストしたいものに重点を追加します。
テストできるようにしたい:
- アソシエーションは意図したとおりに構成されています
- テーブル構造は、関連付けを適切にサポートします
テストデータの完全なセットがあることを見越して、すべてのモデルのFGファクトリを作成しましたが、belongs_toとhas_manyの両方の関連付けをテストするための仕様を作成する方法を理解できません。
たとえば、has_many Usersを持つ組織がある場合、サンプル組織にサンプルUserへの参照があることをテストできるようにします。
Organization_Factory.rb:
Factory.define :boardofrec, :class => 'Organization' do |o|
o.name 'Board of Recreation'
o.address '115 Main Street'
o.city 'Smallville'
o.state 'New Jersey'
o.zip '01929'
end
Factory.define :boardofrec_with_users, :parent => :boardofrec do |o|
o.after_create do |org|
org.users = [Factory.create(:johnny, :organization => org)]
end
end
User_Factory.rb:
Factory.define :johnny, :class => 'User' do |u|
u.name 'Johnny B. Badd'
u.email 'jbadd@gmail.com'
u.password 'password'
u.org_admin true
u.site_admin false
u.association :organization, :factory => :boardofrec
end
Organization_spec.rb:
...
it "should have the user Johnny B. Badd" do
boardofrec_with_users = Factory.create(:boardofrec_with_users)
boardofrec_with_users.users.should include(Factory.create(:johnny))
end
...
Organization.usersリストと比較User:johnnyは同じファクトリの別個のインスタンスであるため、この例は失敗します。
これは、これらのプラグイン(FG、rspec)が対象としているように見えるものの背後にあるBDDのアイデアに従わないことを認識していますが、これが私の最初のRailsアプリケーションであるため、関連付けとテーブルを構成したことを知らずに前進するのは不快です。適切に構造化します。