如何测试web.config中的自定义配置部分
本文关键字:自定义 配置部 config web 何测试 测试 | 更新日期: 2023-09-27 18:01:28
我的MVC Web API应用程序有一个自定义配置节,用于应用程序的配置值。
我想测试自定义配置节值是否在web中填充。配置文件是正确的,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。配置(包含自定义部分和元素)
- MyApp.Configuration。测试(包含允许测试自定义配置部分的
app.config
文件)
除了接受的答案,以防您正在寻找如何避免在测试项目中添加单独的配置文件,然后将主配置文件与测试文件同步的答案,这里有一个链接,它描述了添加原始应用程序/web的整洁方式。配置为测试项目中的链接。您实际上是在处理单个配置文件。本博客讨论了使用testconfigurationsection的另一种方法和execconfigurationfilemap(您可以使用等效的WebConfigurationFileMap)