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

标签 c# unit-testing

我正在尝试在 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/

相关文章:

javascript - $injector 在我的测试中不起作用,为什么?

java - 如何在每个@Test之前运行@BeforeClass方法

unit-testing - 当组件调用的服务抛出 Angular 2 异常时,测试组件是否正常运行

c# - 在 SQL 或 C# 中对列求和

c# - 如何使笔刷平滑而中间没有线条

c# - ControlTemplate 与 DataTrigger 对比带有 DataTemplateSelector 的 DataTemplate

c# - .NET 动态 DLL 加载和安全

c# - 如何使用 MongoDB 实现 ASP.NET Core 3.1 Identity?

spring - 使用 JUnit 测试 Spring 应用程序时出现问题 : NoSuchBeanDefinitionException raised only in tests

django - 如何测试Django自定义模型字段?