2016-03-01 31 views
0

我想使用Moq存根方法GetParametersFromRequest。我只對Text屬性感興趣,我想將字符串*br*替換爲\n如何從一個對象創建另一個屬性時更改Moq存根

我想是這樣的,但我不知道怎麼弄的語法正確(如果可能的話):

myServiceMock.Setup(m => m.GetParametersFromRequest(MyRequest req)) 
      .Returns(new MyParameters() { Text = req.Text.Replace("*br*","\n") }); 

回答

3

我想你想要像

myServiceMock.Setup(m => m.GetParametersFromRequest(It.IsAny<MyRequest>())) 
      .Returns((MyRequest req) => new MyParameters() 
             { Text = req.Text.Replace("*br*","\n") }); 

myServiceMock.Setup(m => m.GetParametersFromRequest(It.IsAny<MyRequest>())) 
      .Returns<MyRequest>(req => new MyParameters() 
             { Text = req.Text.Replace("*br*","\n") }); 
+0

或者,如果你想匹配的確切'MyRequest'情況下,這也應該工作:'myServiceMock.Setup(M => m.GetParametersFromReques t(req))。返回...' – danludwig

+0

謝謝,但現在我得到一個錯誤代表'system.func '不帶1個參數 – Dudute

+0

@Dudute如果你已經在這行之前聲明瞭一個'req'變量,改變你的lambda到像'x => new MyParameters(){Text = x.Text.Replace(「* br *」,「\ n」)}' – danludwig

相關問題