現在、PostgreSQL を多用するアプリケーションを開発しています。ほとんどの場合、SQLAlchemy を使用してデータベースにアクセスしますが、これは非常にうまく機能します。テストのために、関連するオブジェクトをモックするか、データベースにアクセスせずに使用できます。ただし、非標準のクエリを実行するシステムの一部があります。これらのサブシステムは、一時テーブルを作成し、膨大な数の行を挿入してから、データをメイン テーブルにマージする必要があります。
現在、これらのサブシステムにはいくつかの SQL ステートメントがありますが、これにより、関連するクラスがデータベースと密接に結合され、単体テストが難しくなります。
基本的に私の質問は、この問題を解決するための設計パターンはありますか? 私が思いついた唯一のことは、これらの SQL ステートメントを別のクラスに入れ、インスタンスを他のクラスに渡すことです。このようにして、単体テスト用にクエリ クラスをモックできますが、それでも少しぎこちなく感じます。これを行うより良い方法はありますか?