0

我的目标是能够将 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();

        }
    }
4

1 回答 1

0

Ufuk 是对的,您应该进行简单的测试。如果你有这么多的复杂性,你就做错了。基于我认为是您的目标的一些选项:

  • 使用所有测试都继承自的基类
  • 使用辅助方法
  • 允许复制。测试应潮湿而不是干燥
于 2013-05-02T01:37:28.260 回答