1
-2
首先让我告诉你,你不能嘲笑DateTime。“Now”是一个静态属性。模拟的主要思想是解耦依赖关系,并且应该将依赖关系注入相应的类来模拟它。这意味着您必须实现一个到依赖类的接口,并且该接口应该注入到使用依赖类的类中。对于单元测试,模拟相同的接口。因此,接口永远不适合静态,因为接口总是需要concreate类类型,您必须实例化实现相同接口的类。 话虽如此,如果你在使用MSTest,有一个叫做Shim的概念(尽管我不是Shim的忠实粉丝)。您可以创建假部件。在您的情况下,您可以创建“System”和伪DateTime的伪程序集,如下所示,
请阅读有关垫片的更多信息 here |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
Tomas Kubes · 是最大并发数。NET任务有限吗? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
It's a trap · C#-向func添加条件会导致堆栈溢出异常 2 年前 |
user11909 · 物体怎么样。Equals()最终实现了吗? 2 年前 |