Как автоматически загрузить данные в тестовую базу данных, прежде чем тестировать мое приложение? - PullRequest
3 голосов
/ 18 сентября 2011

Я использую Ruby on Rails 3.0.9 и RSpec 2. Я хотел бы автоматически загрузить начальные данные в базу данных test , прежде чем тестировать свое приложение. То есть во время запуска тестирования (когда я запускаю тесты) я хотел бы "автоматически заполнить" \ "автозагрузку" тестовой базы данных .

Как мне заполнить базу данных начальными данными?


PS : Пока я читаю, (возможно) мне следует заполнить тестовую базу данных, добавив некоторый код в файл /spec/spec_helper.rb ... но какой код и как?

В моем task/custom.rake файле у меня есть:

namespace :test do
  desc "Boot database"
  task :boot => [:load, :seed] do
  end

  desc "Reboot database"
  task :reboot => [:purge, :boot] do
  end
end

1 Ответ

3 голосов
/ 18 сентября 2011

Если вы хотите просто вызвать задачу seed rake, я бы сделал что-то вроде этого:

ENV['RAILS_ENV'] = 'test'
Rake::Task["db:seed"].invoke

Но я бы порекомендовал использовать Fixtures (http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures).

или дажеЛучшая замена прибора, например, Factory Girl (https://github.com/thoughtbot/factory_girl),, благодаря которой вы можете загружать фиктивные данные со всеми связанными данными. Это гораздо менее хрупкий подход.

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