Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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# NSubstitute:如何访问返回中的实际参数_C#_Unit Testing_Mocking_Nsubstitute - Fatal编程技术网

C# NSubstitute:如何访问返回中的实际参数

C# NSubstitute:如何访问返回中的实际参数,c#,unit-testing,mocking,nsubstitute,C#,Unit Testing,Mocking,Nsubstitute,我想访问NSubstituteReturns方法中的实际参数。例如: var myThing = Substitute.For<IMyThing>() myThing.MyMethod(Arg.Any<int>).Returns(<actual parameter value> + 1) var myThing=Substitute.For() myThing.MyMethod(Arg.Any).Returns(+1) 使用NSubstitute我应该写什

我想访问NSubstitute
Returns
方法中的实际参数。例如:

var myThing = Substitute.For<IMyThing>()
myThing.MyMethod(Arg.Any<int>).Returns(<actual parameter value> + 1)
var myThing=Substitute.For()
myThing.MyMethod(Arg.Any).Returns(+1)
使用NSubstitute我应该写什么来代替
,或者如何实现等效行为?

根据

属性或方法调用的返回值可以设置为 函数的结果

这里
args.Arg()
将返回传递给调用的
int
参数,而不必使用
(int)args[0]
。如果存在多个索引,则将使用该索引

var myThing = Substitute.For<IMyThing>()
myThing
    .MyMethod(Arg.Any<int>())
    .Returns(args => ((int)args[0]) + 1); //<-- Note access to pass arguments
var myThing = Substitute.For<IMyThing>()
myThing
    .MyMethod(Arg.Any<int>())
    .Returns(args => args.ArgAt<int>(0) + 1); //<-- Note access to pass arguments
var myThing = Substitute.For<IMyThing>()
myThing
    .MyMethod(Arg.Any<int>())
    .Returns(args => args.Arg<int>() + 1); //<-- Note access to pass arguments