Я написал свои базовые модели и определил их связи, а также миграции для создания связанных таблиц.
РЕДАКТИРОВАТЬ - Добавление акцента к тому, что я специально хочу проверить.
Я хочу иметь возможность проверить:
- Связи настроены так, как задумано
- Структуры таблиц должным образом поддерживают ассоциации
Я написал фабрики FG для всех моих моделей в ожидании получения полного набора тестовых данных, но я не могу понять, как написать спецификацию для тестирования ассоциаций own_to и has_many.
Например, для Организации, у которой есть_Пользователи, я хочу иметь возможность проверить, что в моем образце организации есть ссылка на моего примера пользователя.
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 и пользователь сравнения: johnny являются отдельными экземплярами одной и той же фабрики.
Я понимаю, что это не следует идеям BDD, стоящим за тем, для чего эти плагины (FG, rspec) казались предназначенными, но, учитывая, что это мое первое приложение для rails, мне неудобно двигаться вперед, не зная, что я настроил свои ассоциации и структуры таблиц правильно.