私はいくつかの状態モデルの参照データを入力するために、seeds.rb を使用しています。
State.create :name => 'Alabama', :abbreviation => 'AL'
State.create :name => 'Alaska', :abbreviation => 'AK'
# ...
私は状態フィクスチャを使用していませんが (そもそもシード データであるため、純粋にテストのためにこれを複製する必要があるのは DRY ではないと思います)、Rails テスト フレームワークはテスト中にすべての状態シード データを削除するようです。(テストデータベースを削除、再作成、移行、および再シードしており、単体テストを実行する前にデータが存在することを確認しています。)
その結果、次のアサーションは、seeds.rb では成功しますが、1 行のテストでは失敗します。
assert_equal 51, State.all.size
1) Failure:
test_state_seeds_are_present(StateTest) [/test/unit/state_test.rb:24]:
<51> expected but was
<0>.
1 tests, 1 assertions, 1 failures, 0 errors
ベース テスト クラスのフィクスチャ ステートメントで非 State モデルを明示的にリストすることと、トランザクション フィクスチャ フラグを反転することの両方を試みました (予想どおり、これはテスト中に作成されたレコードにのみ影響します)。当然、検討中のテスト自体がこれらのレコードを削除するわけではありません。
State レコードは常に削除されます。Railsにシードデータから手を離すように指示する方法はありますか? 確実に再ロードされるように、フィクスチャ内のすべてのデータを複製する必要がありますか? 主要な政治イベントを除けば、州のデータは比較的安定していると思います。
ティア