У меня есть макет, который создается следующим образом:
var mock = new Mock<IPacket>(MockBehavior.Strict);
mock.Setup(p => p.GetBytes()).Returns(new byte[] { }).Verifiable();
Intellisense для метода установки говорит следующее:
«Определяет настройку фиктивного типа для вызова void метод возврата. "
Но фиктивный метод p.GetBytes () не возвращает void, он возвращает массив байтов.
В качестве альтернативы другой метод Setup определяется как Setup <>, и я могу создать свой макет следующим образом:
var mock = new Mock<IPacket>(MockBehavior.Strict);
mock.Setup<byte[]>(p => p.GetBytes()).Returns(new byte[] { }).Verifiable();
Интеллектуальный смысл этого метода установки гласит:
«Определяет настройку фиктивного типа для вызова значения метод возврата. "
.
.
Какой бы метод я ни выбрал, он компилируется и тестирует нормально. Итак, я не понимаю, как мне это делать. В чем разница между .Setup () и .Setup <> (), и правильно ли я делаю?
Документация для Moq, скажем так, отсутствует. :)