我已经使用Visual Studio Team Edition测试框架准备了一些自动测试.我希望其中一个测试按照在程序中完成的正常方式连接到数据库:
string r_providerName = ConfigurationManager.ConnectionStrings["main_db"].ProviderName;
Run Code Online (Sandbox Code Playgroud)
但是我在这一行中收到了一个例外.我想这是因为ConfigurationManager是一个单例.你怎么能解决单元测试中的单例问题?
谢谢你的回复.所有这些都非常有启发性.
有人说过:
"全局变量"实际上是您创建的变量,只是"保留一些信息",因为您的对象模型很弱,并且您没有找到变量存在的"真实目的".全局变量几乎总是更大的建筑畸形的标志.
这可能是真的.但我不知道任何没有全局变量的大型优秀程序的好例子,当然也没有像上面提到的那样少用.范围是实际的关键.您可以在只有一个类的程序中说它的参数不是全局变量.但他们是.
无论如何...
我仍然在理解单身人士的概念,据我所知,他们在C#中实际上没有任何意义.我也感觉到,当一个全局状态无法避免时,我们仍然应该避免使用一个充满静态属性的公共类:
所以,如果不是单身人士或公共课,我们应该怎样做才能在C#中拥有全球变量呢?
我们什么时候应该使用它们?假设他们很可能无法避免.永远.
为什么我们应该避免使用静态类或static一般?如果C#确实如此.
用一句话:在Csharp中使用全局变量的最佳实践是什么?
我在NUnit的帮助下编写单元测试用例并且有一些静态类需要模拟来运行测试用例,所以我们可以在MOQ模拟框架的帮助下模拟静态类吗?
请建议如果有人有想法.