2010-08-04 41 views
3

我设置单元测试的方式是用户可以运行可执行文件并选择要使用的数据集。此信息存储在app.config中,但是当我尝试访问app.config时使用Gallio Icarus运行单元测试时,它不起作用。在MBunit测试中使用app.config

编辑: 我得到的字段绑定到一个应用程序属性,但是当我呼吁Properties.Settings.Default.Save();它似乎并没有做任何事情。 app.exe.config不会更改,更改不会持续。

+0

它是如何工作的?我问,因为我使用Gallio和MbUnit,并且我可以包含并访问一个没有问题的app.config文件。 – 2010-08-04 12:29:26

+0

我使用Properties.Settings.Default。当我在单元测试中使用它时,这些值是空的。 – Reflux 2010-08-04 13:29:59

+0

我不熟悉 - 你能告诉我们你正在使用的代码吗?如果你需要访问'appSettings',你可以使用'AppSettingsReader'对象。 – 2010-08-04 13:38:32

回答

2

app.config是与程序读取的MyProgramme.exe.config文件相对应的文件启动。这可以通过System.Configuration命名空间和程序集中的Configuration对象访问。

Properties.Settings.Default对应于文件user.config,当你调用Properties.Settings.Default.Save()

所以包括app.config文件中的测试不会影响你的Properties.Settings.Default程序将产生。

欲了解更多信息,请参阅Using Settings

+0

我试过用user.config,但是当我运行我的单元测试时,它不会从我运行我的应用程序时创建的user.config中读取。有没有办法让它读取user.config或我应该使用app.config? – Reflux 2010-08-05 12:33:20

3

模拟您如何阅读应用程序配置。

在您的应用程序中编写一个接口&从app.config文件获取数据的类。 在你的测试中,在一个虚拟物体上实现接口,每次都会传回已知的输出。

您正在测试的类需要接受一个参数(在ctor或其他),该参数是实现接口的对象。

在您的真实代码中,这将是从app.config中读取的真实对象。

在测试中,它将是虚拟对象。

相关问题