[英]How to convert expression signature to be applicable with `It.IsAny` of `Moq`
按照此答案,我尝试了类似的操作并模拟了以下接口:
public interface IGetRepository<TEntity>
{
IEnumerable<TEntity> Get(
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null);
}
这是我的单元测试方法:
IEnumerable<EventModel> expectedList = return new List<MyModel>()
{
new MyModel()
{
Id = 0
}
}
using (var _mock = AutoMock.GetLoose())
{
var repositoryMock = _mock.Mock<IGenericRepository<EventModel>>();
repositoryMock
.Setup(items => items.Get(It.IsAny<Expression<Func<EventModel, bool>>>))
.Returns(() => expectedList);
}
但是It.IsAny<Expression<Func<EventModel, bool>>>
创建以下错误消息:
无法从“方法组”转换为“表达式>”
已经阅读这些类似的问题: 1 , 2 , 3 ,所以我想我的问题是不同的签名,如果是的话我怎么转换这个签名是适用与It.IsAny
的moq
?
请尝试一下
var expectedList = new List<EventModel>()
{
new EventModel()
{
Id = 0
}
};
{
var repositoryMock = new Mock<IGetRepository<EventModel>>();
repositoryMock
.Setup(items => items.Get(It.IsAny<Func<IQueryable<EventModel>, IOrderedQueryable<EventModel>>>()))
.Returns(() => expectedList);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.