FakeItEasy 中的虚拟对象有何用途?
-
22-10-2019 - |
题
FakeItEasy 中的 Dummy 有何用途?它与 A.Fake 或 A.Ignored 有什么不同?
谢谢 :-)
解决方案
FakeItEasy 本身并没有真正使用虚拟实例,它只是创建可在测试中使用的虚拟实例的一种方法。
例如,假设您要测试以下类:
public class Foo
{
public void Bar(DateTime someDate);
}
现在,在您的一个测试中,您想要调用 bar 方法,但传递给它的值对测试并不重要,而不是编写:
foo.Bar(new DateTime(2000, 1, 1));
你可以写:
foo.Bar(A.Dummy<DateTime>());
这表明该值对于测试来说实际上并不重要,因此使用它的全部原因是为了更好地传达意图。
其他提示
@Patrik Hägne 的答案描述了用户如何使用虚拟人,但故事还有另一部分。FakeItEasy 确实使用了 Dummies。
当 FakeItEasy 必须通过调用类的构造函数之一来创建 Fake 类实例(或者有时是另一个 Dummy 类实例)并且构造函数接受参数时,它将使用 Dummies 作为参数。
我鼓励您查看 傻瓜文档.
不隶属于 StackOverflow