Ответ 1
Try
mockCrm.Setup(x => x.GetPickLists())
.Returns(new List<PickList>());
QuickStart является хорошей ссылкой.
Некоторые примеры для других методов:
mockCrm.Setup(x => x.ApplyActions(It.IsAny<IEnumerable>()))
.Returns(new CustomerSyncResult());
mockCrm.Setup(x => x.GetCustomers(It.IsAny<IEnumerable>(),
It.IsAny<IEnumerable>()))
.Returns(new List<Customers>());
В качестве альтернативы создайте общий ресурс IEnumerable в вашем исходном интерфейсе для лучшей безопасности типов.
Вы также можете использовать новые функциональные спецификации Moq v4:
var list = new List<PickList> { new PickList() };
ICrmProvider crm =
Mock.Of<ICrmProvider>(
x =>
x.GetPickLists() == list);
Это не так хорошо документировано в настоящее время. Обратите внимание, что вам больше не нужно писать mock.Object
. Некоторые ссылки:
Точный синтаксис (использование It.Is, содержимое списков и т.д.) будет зависеть от того, что вы пытаетесь выполнить. It.IsAny
будет соответствовать любому аргументу, что упростит работу с параметрами последовательности или коллекции.