![]() |
1
-2
首先让我告诉你,你不能嘲笑DateTime。“Now”是一个静态属性。模拟的主要思想是解耦依赖关系,并且应该将依赖关系注入相应的类来模拟它。这意味着您必须实现一个到依赖类的接口,并且该接口应该注入到使用依赖类的类中。对于单元测试,模拟相同的接口。因此,接口永远不适合静态,因为接口总是需要concreate类类型,您必须实例化实现相同接口的类。 话虽如此,如果你在使用MSTest,有一个叫做Shim的概念(尽管我不是Shim的忠实粉丝)。您可以创建假部件。在您的情况下,您可以创建“System”和伪DateTime的伪程序集,如下所示,
请阅读有关垫片的更多信息 here |
![]() |
mg610 · 如何开始C++单元测试 2 年前 |
![]() |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
![]() |
shilin agre · 在Python中测试修饰函数 3 年前 |
![]() |
SlipScout · Unittest只传递单个值,而不是获取多个值 3 年前 |
![]() |
Alex · 从实际对象的实例返回默认模拟结果 3 年前 |