2013-08-26 5 views
40

В одном из моего Rspec теста, я создаю несколько объектов из того же определения фабрикиFactoryGirl: создать один и тот же объект несколько раз

Например

FactoryGirl.create(:model_1) 
FactoryGirl.create(:model_1) 
FactoryGirl.create(:model_1) 

Есть ли способ, который factory_girl обеспечивает, чтобы сделать это в одной строке

Я знаю, что я могу сделать

3.times {FactoryGirl.create(:model_1)} 

Но я ищу что-то, что factory_girl обеспечивает создание нескольких объектов одной и той же модели.

ответ

78

Вы можете создать список, как это (следовательно, создать х объектов одновременно):

FactoryGirl.create_list(:model_1, 3) 

Документация lives here.

+0

Что делать, если я хочу создать несколько объектов, таких как 'FactoryGirl.create (: model_1,: type =>" something ")'? – usha

+2

смотрите в документе, вы можете передать params hash в качестве третьего аргумента – apneadiving

+0

Спасибо. Я должен был рассмотреть это более внимательно. – usha

2
FactoryGirl.create_list :factory_name, 2, attribute_name: 'value' 

Простой и лучший способ двигаться.

Вы можете игнорировать имена атрибутов, если они не нужны, и использовать вместо них последовательность.