Испытайте seed.rb в Rails - PullRequest
       10

Испытайте seed.rb в Rails

1 голос
/ 02 ноября 2011

Перед обновлением производства я должен убедиться, что все манипуляции с семенами работают правильно.

Как вы тестируете seed.rb с RSpec?

1 Ответ

0 голосов
/ 02 ноября 2011

Семя предназначено для запуска сначала в пустой базе данных, чтобы правильно дать правильное состояние. Если это начальное состояние необходимо изменить (например, таблицы доменов), вам необходимо соответствующим образом адаптировать начальное число, чтобы оно могло добавлять несуществующие элементы или изменять существующие элементы. Хороший способ добиться этого - сделать что-то вроде:

admin = Operator.find_or_create_by_login!(:admin) do |adm|
  adm.name = 'admin'
  adm.is_administrator = true
end

Перед запуском тестов мы также загружаем семена, поэтому легко создать спецификацию, которая будет проверять наличие необходимых данных (на случай, если вы им не доверяете).

Если вам нужно манипулировать существующими данными, предпочтительным способом является использование миграции. Обычно я не пишу спецификации для миграций, но тестирую их в своей базе данных разработки и на копии моей производственной базы данных (перед тем, как запускать ее поверх фактического производства).

Надеюсь, это поможет.

...