2

プロダクションを更新する前に、シードで実行されたすべての操作が正しく機能していることを確認する必要があります。

Seeds.rb を RSpec でどのようにテストしますか?

4

1 に答える 1

0

シードは、正しい状態を正しく与えるために、空のデータベースで最初に実行されることを意図しています。その初期状態を変更する必要がある場合 (ドメイン テーブルなど)、存在しない要素を追加したり、既存の要素を変更したりできるように、それに応じてシードを調整する必要があります。これを達成するための良い方法は、次のようなことです。

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

テストを実行する前にシードもロードするので、必要なデータが存在することを確認する仕様を簡単に作成できます (信頼できない場合に備えて)。

既存のデータを操作する必要がある場合は、移行を使用することをお勧めします。私は通常、移行の仕様を作成しませんが、開発データベースと本番データベースのコピーでそれらをテストします (実際の本番環境で実行する前に)。

お役に立てれば。

于 2011-11-02T19:59:21.273 に答える