- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个单元测试项目,它有自己的 app.config
文件,它是对被测试的目标项目定义的真实配置文件的模拟。这个模拟文件由单元测试代码(而不是目标项目)加载和处理,如果我只在这个测试项目中运行测试,它就能正常工作。
ConfigurationManager.GetSection(sectionName)
但是,如果我从多个测试项目运行测试,并且其他测试项目在相关项目之前执行,则上述语句返回 null
。如果按照讨论的测试项目先进行,加载配置文件是没有问题的。
如何修复单元测试中配置文件的加载以使其正常工作?
最佳答案
您的问题不是 ConfigurationManager.GetSection(sectionName) 返回 null,而是我如何测试包含 ConfigurationManager.GetSection(sectionName) 的一些代码?
答案是:包装它,注入(inject)它,然后为您的测试模拟它。
你有几个人面临同样问题的例子:
(第二个更详细,思路还是一样)。
无论如何,您不能在单元测试中使用来自 app.config 的信息,这是非常合乎逻辑的,因为 app.config 是整个应用程序的上下文,当需要编写绝对独立的测试时。如果直接使用 app.config 值,则存在非逻辑耦合。
关于c# - ConfigurationManager.GetSection(sectionName) 在执行单元测试时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18439834/
//date func sectionName() -> String{ var shortDate: String let dateFormatter = NSDateFor
我有一个单元测试项目,它有自己的 app.config 文件,它是对被测试的目标项目定义的真实配置文件的模拟。这个模拟文件由单元测试代码(而不是目标项目)加载和处理,如果我只在这个测试项目中运行测试,
我正在尝试将 settings.json 文件手动添加到 .net core 2.1 控制台应用程序。所以我将这些 NuGet 包添加到项目中: Microsoft.Extensions.Config
我是一名优秀的程序员,十分优秀!