最近、特別な形式のファイルからデータベースにデータをインポートできる単純なユーティリティを作成するタスクがありました。いくつかのクラスでコンソール アプリケーションを実装しました (プログラム クラスはビジネス ロジック クラスで動作し、ビジネス ロジック クラスはデータ アクセス クラスで動作します)。すべて問題なく動作しますが、今は単体テストを作成してアプリケーションをリファクタリングすることを考えています (これまで実際の単体テストを作成したことはなく、かなり前に一連の統合テストを作成しただけなので、このアプリケーションは練習に最適な分野であると思います) .
ここに問題があります。データ アクセス クラスが静的に作成されているため、モックを作成することができず、その結果、実際の単体テストが作成されます。これを修正するには、インターフェイスを作成してデータ アクセス クラスに実装する必要があります。また、そのインターフェイス タイプのパラメーターを受け入れるビジネス ロジック クラスにコンストラクターを追加する必要があります。したがって、これは、アプリケーションの Main() メソッドでデータ アクセス クラスを作成することになることを意味し、何かがこれが最善のアプローチではないことを教えてくれます (エントリ ポイントがいくつかのデータ アクセスについて知っている必要がありますか? チェーンがもっと長いか、いくつかのチェーンが必要ですか?)。IoC コンテナーを使用できることはわかっていますが、これはコンテナーを使用するには単純すぎるアプリケーションだと思います。
ありがとう!