C# 单元测试 跨单元测试共享对象的单个实例

本文关键字:单元测试 单个 实例 共享 对象 | 更新日期: 2023-09-27 17:50:23

我正在尝试在UnitTests中编写一些TestMethods,它们都共享公共静态资源的单个实例。

在我的单元测试的构造函数中,我实例化了另一个 C# 项目中的公共静态。然后我所有的测试都访问这个公共静态。

但是,似乎在该 UnitTest 类中的每个 TestMethod 中实例化了测试类的新实例。

有没有办法允许这些测试共享公共静态的同一实例?

或者我应该使用另一种技术来测试服务?

**更新**

好吧,我似乎对我想要实现的目标使用了错误的方法。

我已经有单元测试,这些测试正在隔离且没有任何共享资源的情况下进行测试,这些测试按预期工作。

我试图实现的是一种测试与服务的并发连接的方法,该服务将通过 Web 服务/HTTP 接口或通过 TcpListener 的直接连接公开以传递序列化字节[]。

每个连接的客户端都通过服务相互交互。

这些测试仅用于在低于公开的网络接口的级别上测试虚拟客户端的依赖性和互操作性。

该服务已包装到一些公共静态对象中,这些对象公开的功能与通过网络接口公开的功能相同。

我需要一种方法来创建虚拟客户端,该客户端将连接到这些对象并根据响应断言不同的结果。

C# 单元测试 跨单元测试共享对象的单个实例

通常,您不希望单元测试共享任何状态,这样就会减少跌倒错误的可能性。应为每个测试设置预期的启动状态,以消除这些故障问题。

因此,例如,如果您需要一个共享的静态SomethingOrOther,则为每个单元测试创建一个处于正确状态的新静态。