我正在尝试在 UnitTests 中编写一些测试方法,这些测试方法都共享公共(public)静态资源的单个实例。
在单元测试的构造函数中,我实例化了另一个 C# 项目中的公共(public)静态。然后我的所有测试都访问这个公共(public)静态。
但是,似乎在该 UnitTest 类中为每个 TestMethod 实例化了一个新的测试类实例。
是否有办法允许这些测试共享公共(public)静态的同一实例?
或者我应该使用另一种技术来测试服务?
** 更新 **
好吧,看来我使用了错误的方法来实现我想要实现的目标。
我已经准备好单元测试,这些单元测试正在隔离且没有任何共享资源的情况下进行测试,并且按预期工作。
我想要实现的是一种测试与服务的并发连接的方法,该服务将通过 Web 服务/HTTP 接口(interface)或通过 TcpListener 直接连接来传递序列化字节 [] 公开。
每个连接的客户端都通过服务相互交互。
这些测试只是为了在低于公开网络接口(interface)的级别上测试虚拟客户端的可靠性和互操作性。
该服务已被包装到一些公共(public)静态对象中,这些对象公开的功能与通过网络接口(interface)公开的功能相同。
我需要一种方法来创建虚拟客户端,该客户端将连接到这些对象并根据响应断言不同的结果。
最佳答案
一般来说,您不希望单元测试共享任何状态,这样发生错误的可能性就会减少。您应该为每个测试设置预期的开始状态,以消除这些失败问题。
因此,例如,如果您需要一个共享静态 SomethingOrOther
,则为每个单元测试创建一个处于正确状态的新静态SomethingOrOther
。
关于C# UnitTest 跨单元测试共享对象的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5705010/