16

FakeItEasy 中的 Dummy 用于什么?它与 A.Fake 或 A.Ignored 有何不同?

谢谢 :-)

4

2 回答 2

14

FakeItEasy 本身并没有真正使用虚拟对象,它只是创建可以在测试中使用的虚拟实例的一种方式。

例如,假设您要测试以下类:

public class Foo
{
    public void Bar(DateTime someDate);
}

现在,在您的一个测试中,您想要调用 bar 方法,但传递给它的值对测试并不重要,而不是编写:

foo.Bar(new DateTime(2000, 1, 1));

你可以写:

foo.Bar(A.Dummy<DateTime>());

这表明该值对测试实际上并不重要,因此使用它的全部原因是为了更好地传达意图。

于 2011-10-18T13:50:50.727 回答
5

@Patrik Hägne 的回答描述了用户如何使用 Dummy,但故事还有另一部分。FakeItEasy 确实使用了 Dummies。

当 FakeItEasy 必须通过调用一个类的构造函数来创建一个 Fake 类实例(或有时是另一个 Dummy 类实例),并且该构造函数接受参数时,它将使用 Dummies 作为参数。

我鼓励您查看Dummies 文档

于 2013-08-11T01:32:32.143 回答