我正在尝试在UnitTests中编写一些TestMethods,它们共享一个公共静态资源的单个实例。
在我的单元测试的构造函数中,我实例化了另一个C#项目中的公共静态。然后我的所有测试都访问这个公共静态。
但是,似乎在该UnitTest类中为每个TestMethod实例化了一个新的Test Class实例。
是否有办法允许这些测试共享公共静态的同一个实例?
或者我应该使用另一种技术来测试服务吗?
**更新**
好吧,我似乎正在使用错误的方法来实现我想要的目标。
我已经安装了UnitTests,它们正在单独测试,没有任何共享资源,它们正在按预期工作。
我想要实现的是一种测试并发连接到服务的方法,该服务将通过Web服务/ HTTP接口公开或通过TcpListener直接连接以传递序列化的byte []。
每个连接的客户端都通过服务相互交互。
这些测试仅用于测试虚拟客户端的可靠性和互操作性,其级别低于公开的网络接口。
该服务已被包装到一些公共静态对象中,这些对象公开与通过网络接口公开的功能相同的功能。
我需要一种方法来创建将连接到这些对象的虚拟客户端,并根据响应断言不同的结果。
答案 0 :(得分:7)
通常,您不希望单元测试共享任何状态,这样可以减少掉落错误的可能性。您应该为每个测试设置预期的开始状态,以消除这些落空问题。
因此,例如,如果您需要共享静态SomethingOrOther
,则为每个单元测试创建一个处于正确状态的新静态。