2016-03-01 52 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

相关问题