在FakeItEasy中使用的假人是什么?

时间:2011-10-18 00:36:31

标签: c# mocking fakeiteasy

FakeItEasy中使用的假人是什么?它与A.Fake或A.​​Ignored有何不同?

谢谢: - )

2 个答案:

答案 0 :(得分:13)

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

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

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

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

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

你可以写:

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

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

答案 1 :(得分:4)

@PatrikHägne的回答描述了用户如何使用Dummy,但故事的另一部分。 FakeItEasy确实利用了傻瓜。

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

我建议您查看Dummies documentation