簡體   English   中英

如何在web.config中測試自定義配置部分?

[英]How to test custom configuration section in web.config?

我的MVC Web API應用程序具有一個自定義配置部分,該應用程序將其用於配置值。

我想測試web.config文件中填充的自定義配置部分的值是否正確,並且GetSection能夠正確讀取它們。 有什么方法可以測試而無需為具有完全相同值的nunit創建另一個配置文件?

有什么方法可以測試而無需為具有完全相同值的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 ...

有什么方法可以測試而無需為具有完全相同值的nunit創建另一個配置文件?

不,沒有。 您需要具有配置文件才能測試自定義部分。 還有什么比單元測試項目更好的地方? 好像是個完美的地方。

例如,您的解決方案中可以包含以下項目:

  • MyApp.Configuration(包含自定義部分和元素)
  • MyApp.Configuration.Tests(包含一個允許測試您的自定義配置部分的app.config文件)

除了可以接受的答案之外,以防萬一您正在尋找有關如何避免在測試項目中添加單獨的配置文件,然后將主配置文件與測試文件同步的答案, 以下鏈接描述了一種簡潔的方法:將原始app / web.config添加為Test項目中的鏈接。 您實際上將只處理一個配置文件。 該博客討論了使用TestConigurationSection和ExeConfigurationFileMap的替代方法(您可以使用等效的WebConfigurationFileMap

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM