Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Moq设置为调用方法时的增量值_C#_Unit Testing_Moq - Fatal编程技术网

C# 将Moq设置为调用方法时的增量值

C# 将Moq设置为调用方法时的增量值,c#,unit-testing,moq,C#,Unit Testing,Moq,我有一个我正在保存的POCO,如下所示: _myRepo.Save(somePoco); \u myRepo被嘲笑,例如: var myRepo = new Mock<IRepo>(); 参数被传递到回调方法,您只需要显式地指定类型 因此,以下措施应该有效: myRepo.Setup(x => x.Save(It.IsAny<SomePoco>())) .Callback<SomePoco>(poco => { poco.Id

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

_myRepo.Save(somePoco);
\u myRepo
被嘲笑,例如:

var myRepo = new Mock<IRepo>();

参数被传递到
回调
方法,您只需要显式地指定类型

因此,以下措施应该有效:

myRepo.Setup(x => x.Save(It.IsAny<SomePoco>())) 
       .Callback<SomePoco>(poco => { poco.Id = 1; });
myRepo.Setup(x=>x.Save(It.IsAny()))
.Callback(poco=>{poco.Id=1;});
另请参见中的示例:

//访问调用参数
mock.Setup(foo=>foo.Execute(It.IsAny()))
.Returns(true)
.Callback((字符串s)=>calls.Add);

您不能通过闭包访问您的
somePoco
吗?如果它被声明为局部变量,它应该可以在回调函数中访问。在测试方法中调用什么?
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));