我正在尝试执行以下操作:
mockObject.Setup( a => a.MyObject.MyMethod( It.IsAny<string>() ).MyProperty ).Returns( ?? );
其中Returns()返回输入到MyMethod的任何字符串。
这可能吗?
当我尝试以下操作时,我得到System.Reflection.TargetParameterCountException:参数计数不匹配。
mockObject.Setup( a => a.MyObject.MyMethod( It.IsAny<string>() ).MyProperty ).Returns( (string s) => s );
答案 0 :(得分:2)
这样的事情怎么样:
mockObject.Setup( a => a.MyObject.MyMethod( It.IsAny<string>() ) )
.Returns( (string s) =>
{
var mockReturnedObject = new Mock<Returned>();
mockReturnedObject.Setup(o => o.MyProperty).Returns(s);
return mockReturnedObject.Object;
} );
或者,如果您的“返回的对象”只是一个POCO:
mockObject.Setup( a => a.MyObject.MyMethod( It.IsAny<string>() ) )
.Returns( (string s) => new Returned {MyProperty = s} );