我正在尝试在一个dotnetcore项目中设置Moq。我有一个通用存储库,它是从我的一个控制器调用的。我想测试这是一个使用moq设置调用。但我犯了个错误。
启动的泛型存储库调用(因此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>>>
,但这并没有帮助。
有什么想法吗?
发布于 2017-04-16 10:56:33
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);
https://stackoverflow.com/questions/43436345
复制相似问题