是否可以(使用 Moq)使用 Lambda 参数对方法调用进行存根?
如果我这样做:
var repository = new Mock<IRepository<Banner>>();
repository.Setup(x => x.Where(banner => banner.Is.AvailableForFrontend())).Returns(list);
“Where”是我的存储库中的一个方法,它采用 Func
。 availableForFrontend 返回 ISpecification 的实现,list 是存储库通用类型的 IEnumberable。
它编译得很好,但是当我运行测试时出现以下错误。
---- System.NotSupportedException : Expression banner => Convert((banner.Is.AvailableForFrontend() & banner.Is.SmallMediaBanner())) is not supported.
如果我在存储库上使用直接采用 ISpecification 的其他重载Where,则没有问题。
所以我的新手模拟/起订量问题是:我可以使用 lamdba 作为参数来存根方法调用吗?或者我应该以另一种方式解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过以下语法:
have you tried the following syntax: