Я бы не советовал добавлять данные отношений has_many на ваши фабрики.Причина этого заключается в том, что ваша ведущая фабрика теперь зависит от заполнения этой ассоциации, и она добавляет больше связи и, возможно, некоторую путаницу в будущем, если связь изменится.
Если вы хотите проверить эту связь (и я рекомендуюdo), есть замечательный гем под названием Shoulda , который добавляет макросы модульного тестирования, чтобы убедиться, что отношения установлены правильно.Я не использовал его со встроенным Rails Test :: Unit, но пример RSpec выглядел бы примерно так:
describe Lead do
it { should have_many(:emails) }
end
Если вы действительно хотите проверить это отношение, вы должны сделать это в спецификации,Удалите ассоциацию электронной почты из вашей ведущей фабрики и создайте ведущий объект и попробуйте передать ему несколько объектов электронной почты, например, так:
lead = Factory.build(:lead)
2.times do { lead.emails << Factory.build(:email, :lead => lead) }
Тогда у него должна быть пара электронных писем с ним.Тем не менее, вы должны поверить в ActiveRecord и просто протестировать то, что выходит за рамки того, что Rails уже делает для вас.Это то место, где следует Приходить.
Еще один комментарий, который у меня есть, находится на вашем E-mail.Поскольку вы просто используете соглашения по умолчанию, rails будет знать, что делать.
class Email < ActiveRecord::Base
belongs_to :lead
end