C# Moq dotnetcore-无法从';方法组';至';表达式<;Func<;房间,布尔>&燃气轮机';

C# Moq dotnetcore-无法从';方法组';至';表达式<;Func<;房间,布尔>&燃气轮机';,c#,unit-testing,moq,.net-core,C#,Unit Testing,Moq,.net Core,我正在尝试在dotnetcore项目中设置Moq。我有一个从我的一个控制器调用的通用存储库。我想测试这一点,一个是使用moq设置呼叫。但是我犯了一个错误 因此启动的通用存储库调用T为Room为: public T GetSingle(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includeProperties) 模拟部分如下所示: var

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

因此启动的通用存储库调用
T
Room
为:

public T GetSingle(Expression<Func<T, bool>> predicate, params 
Expression<Func<T, object>>[] includeProperties)
模拟部分如下所示:

var room = _roomRepository.GetSingle(r => r.Id == id, ro => ro.Image);
roomRepositoryMock.Setup(c => c.GetSingle(It.IsAny<Expression<Func<Room, bool>>>(), It.IsAny<Expression<Func<Room, object>>>()))
                            .Returns<Room>(null);
roomRepositoryMock.Setup(c=>c.GetSingle(It.IsAny(),It.IsAny())
.返回(空);
但我不断地犯错误:

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>>'
RoomControllerTest.cs(62,55):错误CS1503:参数1:无法从“方法组”转换为“表达式”
RoomControllerTest.cs(62,70):错误CS1503:参数2:无法从“System.Linq.Expressions.Expression”转换为“System.Linq.Expressions.Expression”
其他帖子建议在
It.IsAny
之后添加
()
,但这没有帮助


有什么想法吗?

params
接受一个数组,因此将第二个期望值更改为期望任何表达式数组
It.IsAny()

roomRepositoryMock
.Setup(c=>c.GetSingle(It.IsAny(),It.IsAny())
.返回(空);
roomRepositoryMock
    .Setup(c => c.GetSingle(It.IsAny<Expression<Func<Room, bool>>>(), It.IsAny<Expression<Func<Room, object>>[]>()))
    .Returns<Room>(null);