我设置单元测试的方式是用户可以运行可执行文件并选择要使用的数据集。此信息存储在 app.config 中,但是当我在使用 Gallio Icarus 运行单元测试时尝试访问 app.config 时,它不起作用。
编辑:我得到了绑定到应用程序属性的字段但是当我调用Properties.Settings.Default.Save();
它时似乎没有做任何事情。app.exe.config 不会更改,并且更改不会持续存在。
模拟您阅读应用程序配置的方式。
在您的应用程序中编写一个从 app.config 文件获取数据的接口和类。在您的测试中,在虚拟对象上实现接口,该接口每次都会传回已知输出。
您正在测试的类需要采用一个参数(在 ctor 或其他上),该参数是实现接口的对象。
在您的真实代码中,这将是从 app.config 读取的真实对象。
在测试中,它将是虚拟对象。
app.config
MyProgramme.exe.config
是与程序在启动时读取的文件相对应的文件。这可以通过命名空间和程序Configuration
集中的对象来访问。System.Configuration
Properties.Settings.Default
对应于user.config
您调用时程序将生成的文件Properties.Settings.Default.Save()
所以app.config
在测试中包含文件不会影响Properties.Settings.Default
.
有关更多信息,请参阅使用设置