使用 FakeItEasy 更改模拟函数参数值?
Change mocked function parameter value with FakeItEasy?
我正在寻找一种方法来使用 FakeItEasy 更改 Mock 函数的参数值。
我有类似的东西:
var objParam = new ObjParam();
objParam.SomeIntValue = 0;
A.CallTo(() => iClass.Func(objParam)).WithAnyArguments().DoesNothing();
我想在调用函数后设置 objParam
的值,例如:
objParam.SomeIntValue += 1;
objParam
既不是 ref
也不是 out
参数,它是一个对象。有没有办法用 FakeItEasy 做到这一点?
捕获传递的参数并执行所需的自定义功能
//Arrange
IClass iClass = A.Fake<IClass>();
A.CallTo(() => iClass.Func(A<ObjParam>._))
.Invokes((ObjParam arg) => arg.SomeIntValue += 1);
var objParam = new ObjParam();
objParam.SomeIntValue = 0;
//Act
iClass.Func(objParam);
//Assert
objParam.SomeIntValue.Should().Be(1);
引用Invoking Custom Code
我正在寻找一种方法来使用 FakeItEasy 更改 Mock 函数的参数值。
我有类似的东西:
var objParam = new ObjParam();
objParam.SomeIntValue = 0;
A.CallTo(() => iClass.Func(objParam)).WithAnyArguments().DoesNothing();
我想在调用函数后设置 objParam
的值,例如:
objParam.SomeIntValue += 1;
objParam
既不是 ref
也不是 out
参数,它是一个对象。有没有办法用 FakeItEasy 做到这一点?
捕获传递的参数并执行所需的自定义功能
//Arrange
IClass iClass = A.Fake<IClass>();
A.CallTo(() => iClass.Func(A<ObjParam>._))
.Invokes((ObjParam arg) => arg.SomeIntValue += 1);
var objParam = new ObjParam();
objParam.SomeIntValue = 0;
//Act
iClass.Func(objParam);
//Assert
objParam.SomeIntValue.Should().Be(1);