パラメータが少ないコンストラクタがあるクラスがあります。しかし、このコンストラクタが呼び出されると、コンストラクタの設定ファイルから値を取得するクラスの5つのプロパティがあります。クラスには、コンストラクタで初期化されるパラメータを使用する2つのメソッドがあります。単体テスト用の設定ファイルを模擬する方法
モックフレームワークを使用して2つのメソッドの単体テストを作成したいと思います。しかし、メソッドを呼び出すと、それらのプロパティに値を提供しないので、コンストラクタのパラメータを初期化する方法がわかりません。事前に
public class ABC
{
public ABC()
{
a = ConfigurationManager.AppSetting["GetValue"];
b = ConfigurationManager.AppSetting["GetValue1"];
}
public int Method1(IDictionary<string, string> dict)
{
d = a + b /2; (how to mock values of a and b while writing unit tests
using mock framework. In reality, a in my case is
dictionary)
//some business logic
return d;
}
}
感謝し、
コンストラクタが 'ConfigurationManager'に密接に結合されているので、嘲笑はありません。ただし、単体テストのapp.configに必要なキー/値のペアを追加できます。提供された情報がどのくらい疎かであるかを考えると、これ以上のことは言えません。実際の問題を複製し、可能な解決策を構築するのに役立つプロバイダーa [mcve] – Nkosi
configurationmanagerの周りにラッパーを使用し、ラッパー・タイプをモックします。 [こちら](https://stackoverflow.com/questions/9486087/how-to-mock-configurationmanager-appsettings-with-moq) – Nilesh