首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Moq dotnetcore -无法从“方法组”转换为“Expression<Func<Room,bool>>”

Moq dotnetcore -无法从“方法组”转换为“Expression<Func<Room,bool>>”
EN

Stack Overflow用户
提问于 2017-04-16 10:42:37
回答 1查看 4K关注 0票数 2

我正在尝试在一个dotnetcore项目中设置Moq。我有一个通用存储库,它是从我的一个控制器调用的。我想测试这是一个使用moq设置调用。但我犯了个错误。

启动的泛型存储库调用(因此TRoom )是:

代码语言:javascript
运行
复制
public T GetSingle(Expression<Func<T, bool>> predicate, params 
Expression<Func<T, object>>[] includeProperties)

来自RoomController的调用如下所示:

代码语言:javascript
运行
复制
var room = _roomRepository.GetSingle(r => r.Id == id, ro => ro.Image);

嘲弄的部分看上去像:

代码语言:javascript
运行
复制
roomRepositoryMock.Setup(c => c.GetSingle(It.IsAny<Expression<Func<Room, bool>>>(), It.IsAny<Expression<Func<Room, object>>>()))
                            .Returns<Room>(null);

但我总是犯错误:

代码语言:javascript
运行
复制
RoomControllerTest.cs(62,55): error CS1503: Argument 1: cannot convert from 'method group' to 'Expression<Func<Room, bool>>'
RoomControllerTest.cs(62,70): error CS1503: Argument 2: cannot convert from 'System.Linq.Expressions.Expression<System.Func<viten_i_senter_backend.Models.Room, object>>' to 'System.Linq.Expressions.Expression<System.Func<viten_i_senter_backend.Models.Room, object>>'

其他帖子建议在()之后添加It.IsAny<Expression<Func<Room, bool>>>,但这并没有帮助。

有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2017-04-16 10:56:33

params接受一个数组,因此更改第二个期望,以期待任何表达式数组It.IsAny<Expression<Func<Room, object>>[]>()

代码语言:javascript
运行
复制
roomRepositoryMock
    .Setup(c => c.GetSingle(It.IsAny<Expression<Func<Room, bool>>>(), It.IsAny<Expression<Func<Room, object>>[]>()))
    .Returns<Room>(null);
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43436345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档