Что такое 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 для аргументов.