起订量:返回传递给方法的值
我有一个接口上的方法:
string DoSomething(string whatever); 我想用MOQ来嘲弄这个,所以它返回所有传入的东西 – 例如:
 _mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ; 
有任何想法吗?
你可以使用带有input参数的lambdaexpression式,如下所示:
 .Returns((string myval) => { return myval; }); 
或者稍微可读:
 .Returns<string>(x => x); 
更有用的是,如果你有多个参数你可以访问任何/所有的参数:
 _mock.Setup(x => x.DoSomething(It.IsAny<string>(),It.IsAny<string>(),It.IsAny<string>()) .Returns((string a, string b, string c) => string.Concat(a,b,c)); 
你总是需要引用所有的参数,以匹配方法的签名,即使你只打算使用其中的一个。
 通用的Return<T>方法可以很好地处理这个问题 
 _mock.Setup(x => x.DoSomething(It.IsAny<string>())).Returns<string>(x => x);