繁体   English   中英

如何使用where谓词模拟Linq查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM