Какой лучший метод для создания «тестового» содержимого базы данных в> = Rails 3.2.0? - PullRequest
2 голосов
/ 02 февраля 2012

Я хочу иметь возможность создавать несколько десятков пользователей, статей (или любых других ресурсов, уникальных для приложения) и т. Д., Чтобы увидеть, как приложение выглядит и реагирует при заполнении. Это только для целей тестирования / разработки, поэтому я хочу иметь возможность откатить, уничтожить или что-либо еще. Возможно, я обдумываю это, кто знает.

Я видел, как люди рекомендуют использовать стандартную миграцию, что является одной из идей, но я хочу сделать это НЕОБЯЗАТЕЛЬНО, я не хочу, чтобы все участники проекта получали образец контента при обновлении приложения. *

Другие люди упоминали Factory Girl, но похоже, что это может быть либо чрезмерное убийство, либо побочное использование драгоценного камня, действительно предназначенного для тестирования, и т. Д. Это было не совсем ясно.

Так что вы все делаете в этом случае?

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Рекомендую грабли.Вы можете вставить его в lib/tasks, и все в проекте получат его, но не всем нужно его запускать, и только когда он будет запущен, он будет делать что-либо. Это отличный учебник по написанию рейковых заданий, просто не забудьте прочитать часть под заголовком Rails , чтобы узнать, как вводить ваши модели.

После этоговаши рейковые задачи - это просто код ruby.Я бы предложил использовать динамические методы find_or_create_by, чтобы явно создавать модели, которые вы хотите, и если они запускаются несколько раз, они не будут создаваться несколько раз.Вы также можете выбрать уничтожение всех записей в конкретной модели перед их созданием.

Я бы не рекомендовал использовать Factory Girl, потому что вы, вероятно, хотите получить явный контроль над тем, как создаются ваши модели.

Вотпример грабли, чтобы показать, насколько это просто:

#lib/tasks/my_task.rake
task :fake_data => :environment do
    MyModel.find_or_create_by_name("Test")
end

Затем в консоли:

rake fake_data

Или:

rake fake_data RAILS_ENV=test

Та да!

0 голосов
/ 02 февраля 2012

Взгляните на особенности начальных данных Rails

http://railscasts.com/episodes/179-seed-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...