私はたくさん検索しましたが、これに対する確実な解決策を見つけることができませんでした。アプリケーションにメソッドがあるとします。このメソッドは、「System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration」を使用して、web.config の設定にアクセスします。これらのメソッドをテストしようとすると、テスト プロジェクトに web.config がないため、テストは失敗します。
この問題を解決する最善の方法は何ですか。単純な構成ファイルを使用するプロジェクトの場合、通常、このようなメソッドをファサード メソッドとして使用します。
public class Config
{
public static String getKeyValue(String keyName)
{
if (keyName == String.Empty) return String.Empty;
String result = "";
System.Configuration.Configuration rootWebConfig1 =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
if (rootWebConfig1.AppSettings.Settings.Count > 0)
{
System.Configuration.KeyValueConfigurationElement reportEngineKey =
rootWebConfig1.AppSettings.Settings[keyName];
if (reportEngineKey != null)
{
result = reportEngineKey.Value;
}
}
return result;
}
}
OpenWebConfiguration( ) のパスを設定しようとするたびに、「相対仮想パスは許可されていません」というエラーが表示されました。