[英]Moq setup returns null object when the method is called by a UnitTest
[英]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.