执行UT时,drvClass::getDrvStatus通过参数引用返回值,对他进行mock后,怎么样修改外部getDrvStatus函数的参数值来满足不同的case。
google test官方文档看了一遍,各种GPT问了一圈还是跑不通,有没有大佬指点一二。
class drvClass
{
getDrvStatus(int& status);
};
class mockdrcClass : public drvClass
{
MOCK_METHOD(getDrvStatus, (int&));
};
class myClass
{
void getStatus(int* status);
};
void myClass::getStatus(int* status)
{
//...
int status;
drvClass::getDrvStatus(status);
if(status == 1)
{
}
else if(status == 2)
{
}
//...
}
test_function()
{
int status;
EXPECT_CALL(mockCtl, getDrvStatus(testing::Ref(status)))
.WillOnce(testing::DoAll(testing::SetArgReferee<0>(2)));//尝试了这个方法,但是没有效果
myClass::getStatus(&status);
}
google test官方文档看了一遍,各种GPT问了一圈还是跑不通,有没有大佬指点一二。
class drvClass
{
getDrvStatus(int& status);
};
class mockdrcClass : public drvClass
{
MOCK_METHOD(getDrvStatus, (int&));
};
class myClass
{
void getStatus(int* status);
};
void myClass::getStatus(int* status)
{
//...
int status;
drvClass::getDrvStatus(status);
if(status == 1)
{
}
else if(status == 2)
{
}
//...
}
test_function()
{
int status;
EXPECT_CALL(mockCtl, getDrvStatus(testing::Ref(status)))
.WillOnce(testing::DoAll(testing::SetArgReferee<0>(2)));//尝试了这个方法,但是没有效果
myClass::getStatus(&status);
}