gpt4 book ai didi

c# - 将 Moq 设置为在调用方法时增加值

转载 作者:太空狗 更新时间:2023-10-30 00:32:36 25 4
gpt4 key购买 nike

我有一个正在保存的 POCO,如下所示:

_myRepo.Save(somePoco);

_myRepo 被模拟,例如:

var myRepo = new Mock<IRepo>();

调用 Save 方法时,我想将 somePoco.Id 设置为 1。

我该怎么做?

我看到 .Setup 上有一个 Callback 方法,但它没有通过 POCO,例如:

myRepo.Setup(x => x.Save(It.IsAny<SomePoco>())
.Callback(x => // how do i get the poco?);

最佳答案

参数将传递给 Callback 方法,您只需明确指定类型即可。

所以以下应该有效:

myRepo.Setup(x => x.Save(It.IsAny<SomePoco>())) 
.Callback<SomePoco>(poco => { poco.Id = 1; });

另请参阅 quick start 中的示例:

// access invocation arguments
mock.Setup(foo => foo.Execute(It.IsAny<string>()))
.Returns(true)
.Callback((string s) => calls.Add(s));

关于c# - 将 Moq 设置为在调用方法时增加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16644394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com