Как создать несколько связанных записей для одной родительской записи в factory_girl? - PullRequest
0 голосов
/ 14 сентября 2011

Вот определение для модели user и user_level. У пользователя много уровней пользователя, а уровень пользователя принадлежит пользователю.

Factory.define :user do |user|

  user.name                  "Test User"
  user.email                 "test@test.com"
  user.password              "password1"
  user.password_confirmation "password1"
  user.status                "active"
  user.user_type             "employee"

end

Factory.define :user_level do |level|

  level.role                 "sales"
  level.position             "member"
  level.team                 1
  level.association          :user
end

@ user_level = Factory (: user_level) создает одну запись user_level и ее родительскую запись в таблице пользователей. Что мне делать, если мне нужно сгенерировать 2 записи уровня пользователя для одной родительской записи пользователя?

Есть мысли? спасибо.

1 Ответ

0 голосов
/ 15 сентября 2011

Вы можете сначала указать пользователя, а затем передать одного и того же пользователя каждому вызову создания фабрики:

@user = Factory(:user)
@user_level = Factory(:user_level, :user => @user)
@user_level2 = Factory(:user_level, :user => @user)

Чтобы быстро проверить работоспособность, выполните assert equal ( подтверждает, что это тот же объект )

@user_level.user.should equal @user_level2.user
...