【发布时间】:2020-06-06 20:42:42
【问题描述】:
我有一个带有这个签名的函数 -
TSelect Get<TSelect>(int id, Expression<Func<T, TSelect>> select);
T 在类级别上声明。这意味着允许开发人员传递他们希望对象返回的形状,例如 Linq 中的.Select。
所以它的用法看起来像
_query.Get(123, x => new { x.Id, x.Name })
我不知道如何在 Moq 中进行设置。我已经看到很多关于使用It.IsAnyType 的答案,但这似乎不适用于表达式。而且 Moq 在设计上没有将匿名类型与对象匹配,因此 Expression<Func<MyType, object>> 不起作用。
有什么想法吗?
【问题讨论】:
-
你能解释一下你到底想模拟什么吗?想象一下,嘲笑是有效的,你能添加一个伪代码来让你的问题更清楚吗?我不确定您是否正在尝试制作模拟表达式,模拟给定类型
T的Get函数等。