3

私のMVCWebAPIアプリケーションには、アプリケーションが構成値に使用するカスタム構成セクションがあります。

GetSectionweb.configファイルに入力されたカスタム構成セクションの値が正しく、正しく読み取ることができるかどうかをテストしたいと思います。まったく同じ値を持つnunitの別の構成ファイルを作成せずにこれをテストする方法はありますか?

4

3 に答える 3

4

まったく同じ値を持つ nunit の別の構成ファイルを作成せずにこれをテストする方法はありますか?

はい、次のように実行できます。

Configuration OpenWebConfiguration(string configurationFilePath)
{
    var configurationFileInfo = new FileInfo(configurationFilePath);
    var vdm = new VirtualDirectoryMapping(configurationFileInfo.DirectoryName, true, configurationFileInfo.Name);
    var wcfm = new WebConfigurationFileMap();
    wcfm.VirtualDirectories.Add("/", vdm);
    return WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");
}

...
var c = OpenWebConfiguration(pathToWebConfigFile);
var section = c.GetSection(sectionName);
... etc ...
于 2013-02-28T10:55:14.927 に答える
1

まったく同じ値を持つ nunit の別の構成ファイルを作成せずにこれをテストする方法はありますか?

いいえ、ありません。カスタム セクションをテストするには、構成ファイルが必要です。そのために、単体テスト プロジェクトほど適した場所はありません。完璧な場所のようです。

たとえば、ソリューションに次のプロジェクトを含めることができます。

  • MyApp.Configuration (カスタム セクションと要素を含む)
  • app.configMyApp.Configuration.Tests (カスタム構成セクションをテストできるファイルを含む)
于 2013-02-28T10:43:20.690 に答える
0

受け入れられた回答に加えて、別の構成ファイルをテスト プロジェクトに追加せずにメインの構成ファイルをテスト ファイルと同期する方法についての回答を探している場合に備えて、適切な方法を説明するリンクを次に示します。元の app/web.config をリンクとしてテスト プロジェクトに追加します。基本的に、単一の構成ファイルを扱っています。 このブログでは、 TestConigurationSectionと ExeConfigurationFileMapを使用した代替アプローチについて説明して います (同等のWebConfigurationFileMapを使用できます) 。

于 2014-01-27T13:00:24.953 に答える