我的目标是能够将 setup 方法保留在一个地方而不是我的所有测试类。我想构造一个 lamda 表达式并将其直接发送到 setup 方法。但是我只能发送 2 种类型的 lamda 表达式来设置,没有任何返回类型,或者只是返回类型没有参数。有没有办法解决?如果我做了下面的示例设置不会让程序编译。
Mock<Message> mock = new Mock<Message>();
ParameterExpression instance =
Expression.Parameter(typeof(Message), "i");
ParameterExpression param =
Expression.Parameter(typeof(string), "str");
Expression methodCall =
Expression.Call(instance, typeof(Message).GetMethod("gettime"),param);
var lambda =
Expression.Lambda<Func<Message,string,string>>(methodCall, instance,param);
Message 类看起来像。
public class Message
{
public virtual string gettime (string str)
{
return str + DateTime.Now.ToString();
}
}