0
我的目標是能夠將設置方法保留在一個地方而不是我所有的測試類。我想構建一個lamda表達式並將其發送到設置方法直。 但是我只能發送兩種類型的lamda表達式來設置, 沒有任何返回類型,或者只返回沒有參數的類型。 有沒有辦法解決這個問題? 如果我做了下面的例子安裝程序不讓程序編譯。如何將方法作爲lambda表達式發送到moq.setup
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();
}
}
我建議不要在單元測試中使用這種複雜的代碼。他們應該簡單易懂。 – 2013-05-01 00:46:16