2

データベースへの変更についてすべてのモデルを監視するオブザーバーを作成しました。このオーディター オブザーバーは、それ自体で優れた機能を発揮しますが、テスト スイートを破壊します。オブザーバーがすべてのテストを失敗させる理由がわかりません。ご存知でしたら教えてください。(ちなみに、Rails 3.2.14 を実行しています。)

しかし、もっと重要なことは、このオブザーバーをテスト スイートとうまく連携させる方法を探していることです。オブザーバー クラスが実行時に評価できる、環境構成レイヤーに何らかのフラグを追加することを考えていました。次に、開発環境とテスト環境ではフラグを「false」に設定し、本番環境では true に設定します。しかし、私はこれをどのように行うのかわかりません。助言がありますか?

かなりの量のテストが実際には spec_helper をロードしないため、spec_helper でオブザーバーを無効にするオプションはありません。これらのテストのほとんどは、実際にはデータベースに変更を加えませんが、仮説的には、何百ものテスト ファイルを掘り下げてリファクタリングする必要はありません。

そのため、テスト環境全体でオブザーバーを無効化または無力化する方法を探しています。構成レイヤーはこれを行うのに適切な場所のようですが、どうすればよいかわかりません。これを達成する方法についてアドバイスをいただければ幸いです。

更新: 私が抱えている問題の詳細な説明を含む関連記事: https://stackoverflow.com/questions/18321693/how-to-disable-an-activerecord-observer-in-a-rails-engine?noredirect= 1#コメント26888767_18321693

4

1 に答える 1