我最近发现,类似于“Out”参数修饰符(我没有更好的描述),存在一个“In”修饰符。
例子:
被测函数的定义:
void someStubbedFunc(uint8* outPtr, uint8* inPtr)
{
//we write something onto outPtr, and somehow use inPtr.
*outPtr = *inPtr + 1;
}
在测试代码中:
uint8 readbackStorageVar = 0;
uint8 inputVar = 5;
uint8* localPtr = &inputVar;
mocks_p->ExpectCallFunc(someStubbedFunc).With(Out(readbackStorageVar), In(localPtr));
预期的行为是将 6 分配给 localValue2。现在我的问题:
我理解并欣赏“Out”修饰符——在这种情况下,someFunc 通常会将内部计算的返回值写入变量 value1,我们可以使用“Out”为我们的模拟实现这一点。但是在应用“In”时增加了什么功能?
对我来说,这听起来像是一个输入参数,类似于离开“In”:
mocks_p->ExpectCallFunc(someFunc).With(Out(readbackStorageVar), localPtr);