鉴于此模型:
class User < ActiveRecord::Base
belongs_to :user_profile
before_create { build_user_profile }
end
这个工厂:
FactoryGirl.define do
factory :user do
end
end
当我做:
@user = FactoryGirl.create(:user)
FactoryGirl
失去@user.user_profile
关联(它是nil
),我必须打电话@user.reload
这会稍微减慢我的测试速度,因为大多数测试都需要登录用户。我试过让工厂(重新)创建关联before/after(:build/:create)
无济于事。
我怎样才能在钩子之前/之后得到FactoryGirl
尊重?ActiveRecord
编辑:
reload
实际上还不够,我必须这样做:
FactoryGirl.define do
factory :user do
after(:create) do |user|
user.create_user_profile
user.save
end
end
end
只要模型有,使用FactoryGirl
自己的方法就行不通。association
User
before_create { build_user_profile }