lys*_*cid 5 c# nunit unit-testing testdriven.net
我有一个组件从标准.NET配置(app.config)文件中读取一些配置.
当我为这个组件运行单元测试(NUnit)时(使用TD.NET),我注意到没有读取配置文件.
经检查 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
我注意到它的'值设置为C:\ Users\ltal\AppData\Local\Temp\tmp6D2F.tmp(一些临时随机位置).
为什么会发生这种情况有原因吗?(是NUnit还是TD.NET的错?)
我想我可以自己设置这个SetupInformation对象,为了测试,还没有尝试过,但仍然想知道为什么它是这样创建而不是默认.
要解决此问题,您可以在单元测试项目中创建一个 app.config。然后,单元测试将调用它来代替主 app.config。然后,您可以在单元测试中更改该 app.config 中的值,从而更轻松地测试不同的值和配置,即您可以在运行测试之前使用某些值设置测试 app.config。
ConfigurationManager.AppSettings[""] = "";
另一种选择可能是将设置放在主项目的 Settings.setting 文件中。那么您不必更改单元测试项目中的任何内容。有关设置和 app.config 之间差异的一些链接 - MSDN 论坛、StackOverflow、用户设置 - MSDN
当然,第三种选择是通过引入接口并将依赖项注入到组件中,从而从组件中删除对 app.config 的依赖,从而可以轻松模拟它并进行单元测试。
| 归档时间: | 
 | 
| 查看次数: | 2089 次 | 
| 最近记录: |