Обновление записей с фабрикой Factory Girl - PullRequest
0 голосов
/ 11 августа 2011

Используя RSpec и Factory Girl, я создаю запись, которая при создании ассоциирует записи «часов», автоматически созданные в after_create.

Но я хочу протестировать часы с нестандартными настройками, предпочтительно те, которые я определяю на фабриках фабричных девушек. Вот что я думаю, я бы хотел сделать:

  before (:all) do
    @business = Factory(:business_one)
    # when that business is saved, a set of default hours is automatically saved as well
    # how would I now update the hours with fixtures?
    # so, ideally something like:
    @business.hours[0] << Factory(:day_one)
    @business.hours[1] << Factory(:day_two)
    ...etc...
  end

Это выполнимо, или мне нужно подходить к этому по-другому?

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Почему бы не создать альтернативную фабрику:

Factory.define :business_with_altnernate_hours, :parent => :business_one do
  after_create do |business|
    business.hours.clear
    Factory.create(:day_one, :business => business)
    Factory.create(:day_two, :business => business)
  end
end
0 голосов
/ 11 августа 2011

Вот что вы можете сделать:

@business = Factory(:business_one)

# clear associations so it's in a known state
@business.hours.clear

@business.hours << Factory(:day_one)
@business.hours << Factory(:day_two)

Они все равно будут вставлены и сохранены в том порядке, в котором вы добавили новую ассоциацию.

...