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