Как загрузить коллекцию пользователей фабрик?

#ruby-on-rails #ruby #ruby-on-rails-3 #rspec #rspec2

#ruby-on-rails #ruby #ruby-on-rails-3 #rspec #rspec2

Вопрос:

Я использую Ruby on Rails 3.1.0 rspec-rails 2 и Factory gems. Чтобы протестировать index действие контроллера, я хотел бы загрузить коллекцию пользователей фабрик.

Пример (следующий код не работает):

 describe "GET index" do
  let(:users) { 3.times(Factory(:user)) }

  it "should ..." do
    users.should ...
  end
end
  

Используя приведенный выше код, я получаю следующую ошибку:

 Failure/Error: let(:users) { 3.times(Factory(:user)) }
ArgumentError:
  wrong number of arguments(1 for 0)
  

Что я могу сделать, чтобы загрузить фабрики в users переменную?


ОБНОВЛЕНИЕ … и если в приведенном выше коде у меня есть Factory(:user, :account => Factory.build(:account)) вместо Factory(:user) как я могу загружать фабрики?

Ответ №1:

Попробуйте let(:users) { FactoryGirl.create_list(:user, 3) }

Комментарии:

1. И если у меня есть что-то вроде этого: Factory(:user, :account => Factory.build(:account)) . Как я могу загрузить фабрики?

2. Попробуйте FactoryGirl.create_list(:user, 3, :account => Factory.build(:account))