FakeItEasy返回调用方法的对象

4
我想将我的虚假页面设置成这样:
A.CallTo(() => this.repository.Create(A<PersonModel>._)).Returns(XYZ);

在这里,XYZ 是与 A<PersonModel>._ 中插入的相同变量。

因此,如果使用 mySamplePersonModel 调用 Create 方法,我希望该方法返回 mySamplePersonModel

如何实现这一目标?

提前感谢您的帮助。

2个回答

4
你找到的解决方案是正确的。在我看来,有另一种更易读的替代方法:
A.CallTo(() => repository.Create(A<PersonModel>._)).ReturnsLazily((PersonModel p) => p);

3
我发现了答案,您可以按照以下方式捕获参数:
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;
            });

如果有更优雅的解决方案,请随意发表 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接