私は、別のテーブルの内容に基づいて動的にスコープを追加したActiveRecordクラスを持っています。Railsテスト、フィクスチャとクラスロードの順序
(簡略化されたコード例)
class Thing < ActiveRecord::Base
Feature.all.each do |feature|
scope feature.name, ->{joins(:feature).where("feature.name = #{feature.name})}
end
end
アプリのUIの別の部分は、あなたが検索の一部として、これらの機能のスコープを検索し、適用することができます「シングディスプレイ」です。
これは、実行中のアプリですべて正常に動作します。
しかし、テストでは、どのような順序で物が読み込まれているかによって異なります。Thing
には予想される範囲があり、それ以外の時はありません。テストを実行する前にFeature.count
を呼び出してFeature
のクラスとフィクスチャを最初にロードするように強制することはできたが、これはうまくいかないと思った。
これを解決するためのクラス/フィクスチャのロードを強制する方法はありますか?
[this](http://stackoverflow.com/a/28515064/2116518)または[this](https://sanjusoftware.wordpress.com/2010/12/17/)に関連していないことを確かめてくださいレールフィクスチャー - ロードオーダー/)? –
@NicNilov私はPostgresを実行していません.dbに外部キーの制約がなく、テストの実行順序によってテストが合格/不合格になります。したがって、リンクされた問題は適用されません。 – z5h