Что такое Dummy для FakeItEasy?

Что такое Dummy для FakeItEasy? Как он отличается от A.Fake или A.Ignored?

Спасибо: -)

Ответ 1

Манекен на самом деле не используется никем самим FakeItEasy, это всего лишь способ создания фиктивных экземпляров, которые вы можете использовать в своих тестах.

Например, скажем, что вы хотите протестировать следующий класс:

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

Теперь, в одном из ваших тестов вы хотите вызвать метод bar, но переданное ему значение не важно для теста вместо записи:

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

Вы можете написать:

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

Это означает, что значение действительно не важно для теста, поэтому вся причина его использования заключается в том, чтобы лучше сообщать о намерениях.

Ответ 2

@Patrik Hägne отвечает, как пользователи могут использовать Dummy, но есть и другая часть истории. FakeItEasy использует "чайники".

Когда FakeItEasy должен создать экземпляр Fake класса (или иногда другой экземпляр класса Dummy), вызывая один из конструкторов классов, а конструктор принимает аргументы, он будет использовать Dummies для аргументов.

Я рекомендую вам ознакомиться с документацией Dummies.