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

时间:2011-04-18 15:12:51

标签: c# unit-testing

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

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

但是,似乎在该UnitTest类中为每个TestMethod实例化了一个新的Test Class实例。

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

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

**更新**

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

我已经安装了UnitTests,它们正在单独测试,没有任何共享资源,它们正在按预期工作。

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

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

这些测试仅用于测试虚拟客户端的可靠性和互操作性,其级别低于公开的网络接口。

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

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

1 个答案:

答案 0 :(得分:7)

通常,您不希望单元测试共享任何状态,这样可以减少掉落错误的可能性。您应该为每个测试设置预期的开始状态,以消除这些落空问题。

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