2011-03-29 29 views
3

返回字符串我試圖做到以下幾點:起訂量 - 設置屬性從方法參數

mockObject.Setup(a => a.MyObject.MyMethod(It.IsAny<string>()).MyProperty).Returns(??); 

在返回()返回的任何字符串輸入到的MyMethod。

這可能嗎?

當我嘗試以下,我得到System.Reflection.TargetParameterCountException:參數計數不匹配。

mockObject.Setup(a => a.MyObject.MyMethod(It.IsAny<string>()).MyProperty).Returns((string s) => s); 

回答

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}); 
+0

工作就像一個魅力!謝謝! – SFun28 2011-03-29 23:56:59