Reference gmock多个输入输出参数setargreferer
我有一个接口Itest:Reference gmock多个输入输出参数setargreferer,reference,gmock,Reference,Gmock,我有一个接口Itest: class Itest { bool testfunction(vector<int>& v, int& id); } class-Itest{ 布尔测试函数(向量&v、整数&id); } 我可以用以下方式来嘲弄它: MOCK_METHOD2(testfunction, bool(vector<int>&, int&)) 模拟方法2(testfunction,bool(vector&,int&))
class Itest {
bool testfunction(vector<int>& v, int& id);
}
class-Itest{
布尔测试函数(向量&v、整数&id);
}
我可以用以下方式来嘲弄它:
MOCK_METHOD2(testfunction, bool(vector<int>&, int&))
模拟方法2(testfunction,bool(vector&,int&))
但是如何设置返回值呢
我试过:
vector<int> v;
int i;
EXPECT_CALL(testobject, testfunction(_,_, _))
.WillOnce(testing::SetArgReferee<0>(v))
.WillOnce(testing::SetArgReferee<1>(i))
.WillOnce(Return(true));
向量v;
int i;
期望调用(testobject,testfunction(u,u,u))
.WillOnce(测试::SetArg裁判(v))
.WillOnce(测试::SetArg裁判(i))
.WillOnce(返回(true));
但是它被称为三次
如何一次性设置这些
argreferers
和返回值?您可以使用DoAll
操作将多个操作组合在一起:
EXPECT_CALL(testobject, testfunction(_, _, _))
.WillOnce(DoAll(SetArgReferee<0>(v), SetArgReferee<1>(i), Return(true)));
EXPECT_调用(testobject,testfunction(u,u,u))
.WillOnce(DoAll(setargreference(v)、setargreference(i)、Return(true));
更多信息请参见谷歌模拟