2017-09-26 76 views
2

FakeItEasy返回对象我想设置我的假像这样:,该方法被调用

A.CallTo(() => this.repository.Create(A<PersonModel>._)).Returns(XYZ); 

其中XYZ是相同的变量作为A<PersonModel>._

所以插入如果Create被调用mySamplePersonModel我想要的方法返回mySamplePersonModel

我该如何做到这一点?

在此先感谢

回答

2

您的解决方案您的基金会d是正确的。有一个替代方案是更易读的国际海事组织:

A.CallTo(() => repository.Create(A<PersonModel>._)).ReturnsLazily((PersonModel p) => p); 
2

我找到了答案,你可以捕捉的参数是这样的:

A.CallTo(() => this.repository.Create(A<PersonModel>._)).ReturnsLazily(x => x.Arguments.Get<PersonModel>(0)); 

你甚至可以修改此参数是这样的:如果任何人有一个

A.CallTo(() => this.repository.Create(A<PersonModel>._)).ReturnsLazily(x => 
      { 
       var personModel = x.Arguments.Get<PersonModel>(0); 
       personModel.Name = "aName"; 
       return personModel; 
      }); 

更优雅的解决方案,随时发布:-)