[英]How to mock Linq Query with where predicate
以下是会议信息类型的listOfMeetings
。
它将返回参与者类型。
如何用moq模拟下面的查询?
listOfMeetings.Where(x => x.MeetingURI == meeting.MeetingUrl)
.FirstOrDefault().Participants;
创建一个列表以存储测试数据,然后将该模拟程序设置为IQueriable,将其映射到测试数据。
var meetingData = new List<MeetingInfo>();
//...populate the list with data
var mockList = new Mock<IMeetingList>();
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.Provider).Returns(meetingData.Provider);
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.Expression).Returns(meetingData.Expression);
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.ElementType).Returns(meetingData.ElementType);
mockList.As<IQueryable<MeetingInfo>>().Setup(m => m.GetEnumerator()).Returns(() => meetingData.GetEnumerator());
这将允许对模拟的linq调用能够枚举测试数据并应用谓词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.