繁体   English   中英

设置Moq以在调用方法时增加值

[英]Setup Moq to increment value when method called

我有一个保存的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; });

另请参阅快速入门中的示例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM