Я использую пакет Nuget Moq (v4.13.1)
Класс / метод, который я пытаюсь смоделировать, имеет следующий интерфейс:
public interface IAgendaService
{
Task<IList<IMeeting>> GetRecentMeetingsMostRecentFirstAsync(
IWho who,
TimeSpan? timeSpan = null,
int? maxNumberOfMeetings = null);
}
В моем методе тестирования У меня есть следующий код для определения Mock:
Mock<IAgendaService> service = new Mock<IAgendaService>(MockBehavior.Strict);
service.SetupGet(x =>
x.GetRecentMeetingsMostRecentFirstAsync(
It.IsAny<IWho>(),
It.IsAny<TimeSpan?>(),
It.IsAny<int?>()))
.Returns(Task.FromResult((IList<IMeeting>)new List<IMeeting>()));
Когда я запускаю тест, service.SetupGet () выдает следующее исключение:
Метод теста Agenda.Web.Tests. Controllers.HomeController.IndexTests.TestIndex вызвало исключение: System.ArgumentException: выражение не является доступом к свойству: x => x.GetRecentMeetingsMostRecentFirstAsyn c (It.IsAny (), It.IsAny (), It.IsAny ()) Moq.ExpressionExtensions.ToPropertyInfo (выражение LambdaExpression) в Moq.Mock.SetupGet (макет mock, выражение LambdaExpression, условие Condition) в Moq.Mock 1.SetupGet[TProperty](Expression
1 выражение)
Что я делаю не так?