Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单元测试时无法修改应用程序设置_C# - Fatal编程技术网

C# 单元测试时无法修改应用程序设置

C# 单元测试时无法修改应用程序设置,c#,C#,我正在尝试更改Windows服务设置中的一些应用程序设置,这些设置将在安装期间设置。我要为单元测试设置的设置 现在,assemblyinfo文件具有单元测试项目的InternalsVisibleTo 在我的测试方法中,我可以深入到设置。我要测试的项目的默认设置,我可以看到所有设置。但是,例如,当我去的时候: dummy.PropertyValues["MySetting"].PropertyValue = "SomeValue"; 我得到一个空引用异常 假人设置为: var du

我正在尝试更改Windows服务设置中的一些应用程序设置,这些设置将在安装期间设置。我要为单元测试设置的设置

现在,assemblyinfo文件具有单元测试项目的InternalsVisibleTo

在我的测试方法中,我可以深入到设置。我要测试的项目的默认设置,我可以看到所有设置。但是,例如,当我去的时候:

   dummy.PropertyValues["MySetting"].PropertyValue = "SomeValue";
我得到一个空引用异常

假人设置为:

    var dummy = MyProject.Properties.Settings.Default;

是否可以为单元测试设置所需的应用程序设置?

这会让任何人感到困惑。VisualStudio项目中有两个可用设置;一个是
项目设置
,另一个是
应用程序配置设置

这里的
MyProject.Properties.Settings.Default
是您的项目设置。应用程序设置在
System.Configuration.ConfigurationManager.Appsettings
下可用。因此,您可能希望将虚拟对象用于应用程序设置:

var dummy = System.Configuration.ConfigurationManager.Appsettings;
现在,如果更新该值,将在当前会话中更新Appsettings集合:

dummy.PropertyValues["MySetting"].PropertyValue = "SomeValue";

问题似乎出在VisualStudio2010上


重新启动后,由于单元测试已经可以通过assembleyInfo.cs进行访问,我可以按照问题中所述设置属性设置。

这就是为什么应该抽象出对配置变量的访问;单元测试不需要web/app配置或设置文件severyone没有抓住要点。设置文件是我正在测试的项目的一部分。安装时会设置一些值。但是,为了在该项目中测试方法,需要设置这些设置。我想设置这些值以完成测试。