我正在使用Ruby on Rails 3.0.9,RSpec-rails 2和FactoryGirl。我想生成一些与用户帐户相关的 Factory关联模型数据(在User
类中我说明了has_one :account
关联),以便在以下方面做到以下几点: spec文件:
let(:user) { Factory(:user) }
it "should have an account" do
user.account.should_not be_nil # Note: 'user.account'
end
此时我有一个factories/user.rb
文件,如下所示:
FactoryGirl.define do
factory :user, :class => User do |user|
user.attribute_1
user.attribute_2
...
end
end
和factories/users/account.rb
文件如下:
FactoryGirl.define do
factory :users_account, :class => Users::Account do |account|
account.attribute_1
account.attribute_2
...
end
end
为了处理规范文件中的RoR关联模型,正确\常见指示FactoryGirl数据的方式是什么?
答案 0 :(得分:0)
首先,您不需要:class =>用户,因为它会自动推断。
FactoryGirl.define do
factory :user do
attribute_1 'Some'
attribute_2 'Text'
end
end
要在工厂中使用关联,只需直接包含名称:
FactoryGirl.define do
factory :post do
user
title 'Hello'
body 'World'
end
end
在上面的示例中,用户将与帖子相关联。
您还可以使用命名工厂:
FactoryGirl.define do
factory :post do
association :user, :factory => :administrator
title 'Hello'
body 'World'
end
end
documentation解释了这一切。