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