我已经编写了我的基本模型并定义了它们的关联以及创建关联表的迁移。
编辑 - 强调我特别想测试的内容。
我希望能够测试:
- 关联按预期配置
- 表结构正确支持关联
我已经为我的所有模型编写了 FG 工厂,以期拥有一套完整的测试数据,但我无法掌握如何编写规范来测试 belongs_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
用户工厂.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
组织规范.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 应用程序,我不知道我已经配置了我的关联和表,我很不舒服继续前进结构合理。