sgn*_*gon 6 .net c# configuration nunit configurationmanager
我有一个单元测试项目,它有自己的app.config文件,它是由正在测试的目标项目定义的真实配置文件的模拟.这个模拟文件由单元测试代码(而不是目标项目)加载和处理,如果我只在这个测试项目中运行测试,它就能正常工作.
ConfigurationManager.GetSection(sectionName)
Run Code Online (Sandbox Code Playgroud)
但是,如果我从多个测试项目运行测试,并且在相关项目之前执行其他测试项目,则返回上述语句null.如果首先执行讨论的测试项目,则加载配置文件没有问题.
如何在单元测试中修复配置文件的加载才能正常工作?
你的问题不是ConfigurationManager.GetSection(sectionName)返回null,它是如何测试包含ConfigurationManager.GetSection(sectionName)的一些代码的?
答案是:包装它,注入它,然后为你的测试模拟它.
您有几个面临相同问题的人员示例:
(第二个更详细,但想法仍然相同).
无论如何,这是合乎逻辑的,你不能在单元测试中使用来自app.config的信息,因为app.config是整个应用程序的上下文,当需要编写绝对独立的测试时.如果直接使用app.config值,则表示您具有非逻辑耦合.
| 归档时间: |
|
| 查看次数: |
7604 次 |
| 最近记录: |