Каковы оптимальные методы обработки данных базы данных в режиме «тестирования»? - PullRequest
3 голосов
/ 19 марта 2012

Я использую Ruby on Rails 3.2.2, cucumber-rails-1.3.0, rspec-rails-2.8.1 и capybara-1.1.2.У меня эта проблема , но я начал думать, что, возможно, я делаю что-то не так ... в основном, в отношении заполнения данных в базе данных test для целей тестирования.В частности, моя проблема связана с тем, как правильно управлять данными в базе данных test, когда мне нужно протестировать приложение.

Я сомневаюсь: Посеивая данные ( ДляВаша информация : я использую файл ROOT_PATH/db/seed.rb для ввода этих данных) в базе данных test Я делаю то, что должно быть сделано? То есть как я должензаполнить базу данных test, поскольку данные в этой базе данных * необходимы для правильной работы моего приложения в целях тестирования? Стоит ли вообще заполнять базу данных test?

В другихслова, , каковы наилучшие методы обработки данных базы данных в режиме test (в моем случае) ? И, вообще говоря, как следует обрабатывать ситуацию?

***** Например, для работы моего приложения требуются как минимум данные, относящиеся к «анонимному» пользователю, «основным» статьям, «основным» категориям статей и т. Д.

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Вы должны использовать одно из следующих:

  1. Светильники.См. Соответствующую документацию по Rails
  2. Заводы.Самый популярный инструмент для создания / управления фабриками - FactoryGirl .ИМХО, это лучшее решение.
  3. Убедитесь, что данные внесены в тестовую базу данных.См. этот вопрос StackOverflow.
0 голосов
/ 20 марта 2012

У меня была похожая проблема, ассоциация потребовала немного начальных данных:

  • Фабрики сделают ваши тесты очень медленными, они отлично подходят для отдельных объектов, ноне для большого количества начальных данных, которые должны быть созданы для каждого теста

  • Fixture Builder - http://github.com/rdy/fixture_builder Я создал несколько приборов и просто загрузил их из БД длякаждый тест сокращает время моего тестирования на 40%.Вместо этого вы также можете загрузить файл seed.Но будьте осторожны, удаление или обновление записей приведет к нежелательным побочным эффектам.Используйте фабрики для этих спецификаций.

  • Проверяйте и заглушайте все, чтобы ваши тесты редко касались БД.Это стало очень непопулярным, в конечном итоге вы получите прохождение спецификаций, которые не учитывают ваши фактические ошибки.

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