Moq dotnetcore - 无法从 'method group' 转换为 'Expression<Func<Room, bool>>'
Moq dotnetcore - cannot convert from 'method group' to 'Expression<Func<Room, bool>>'
我正在尝试在 dotnetcore 项目中设置起订量。我有一个从我的一个控制器调用的通用存储库。我想测试一下是否正在使用最小起订量来设置呼叫。但是我得到一个错误。
启动的通用存储库调用 T
是 Room
是:
public T GetSingle(Expression<Func<T, bool>> predicate, params
Expression<Func<T, object>>[] includeProperties)
来自 RoomController
的调用如下所示:
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);
但我不断收到错误消息:
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>>>
之后添加()
,但这并没有帮助。
有什么想法吗?
params
接受一个数组,因此将第二个期望更改为期望任何表达式数组 It.IsAny<Expression<Func<Room, object>>[]>()
roomRepositoryMock
.Setup(c => c.GetSingle(It.IsAny<Expression<Func<Room, bool>>>(), It.IsAny<Expression<Func<Room, object>>[]>()))
.Returns<Room>(null);
我正在尝试在 dotnetcore 项目中设置起订量。我有一个从我的一个控制器调用的通用存储库。我想测试一下是否正在使用最小起订量来设置呼叫。但是我得到一个错误。
启动的通用存储库调用 T
是 Room
是:
public T GetSingle(Expression<Func<T, bool>> predicate, params
Expression<Func<T, object>>[] includeProperties)
来自 RoomController
的调用如下所示:
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);
但我不断收到错误消息:
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>>>
之后添加()
,但这并没有帮助。
有什么想法吗?
params
接受一个数组,因此将第二个期望更改为期望任何表达式数组 It.IsAny<Expression<Func<Room, object>>[]>()
roomRepositoryMock
.Setup(c => c.GetSingle(It.IsAny<Expression<Func<Room, bool>>>(), It.IsAny<Expression<Func<Room, object>>[]>()))
.Returns<Room>(null);