Microsoft の単体テスト フレームワークを使用して単体テストを行いたいクラス ライブラリがあります。テストしたいクラスのいくつかは、アプリケーション設定を使用して構成されています。これらの設定は、Settings.settings
アプリケーション スコープと適切なデフォルト値を持つファイル内で定義されます。ライブラリがアプリケーションによって使用される場合、これらの設定はファイルでオーバーライドできApp.Config
ます。そうでない場合は、デフォルト値が使用されます。それがまさに私が望んでいる方法です。
いくつかのテスト ケースでは、設定値の特別な組み合わせをテストしたいのですが、単体テスト コードからテスト対象のクラスに表示される値を変更する方法がわかりません。これらの設定には、コード生成クラスの属性からロードされたデフォルト値が常に含まれます。
ライブラリ クラスでは、次のような設定にアクセスします。
var mySetting1 = Settings.Default.MySetting1;
var mySetting2 = Settings.Default.MySetting2;
テスト対象のクラスが設定にアクセスする前に、単体テストでこれらの設定を変更するにはどうすればよいですか? 単体テストで内部設定クラスにアクセスできるようにしても、設定にはアプリケーション スコープがあり、設定クラスの読み取り専用プロパティであるため、問題は解決しません。