J'ai une interface Itest:
class Itest {
bool testfunction(vector<int>& v, int& id);
}
Je peux me moquer de lui avec:
MOCK_METHOD2(testfunction, bool(vector<int>&, int&))
mais comment puis-je définir les valeurs de retour?
J'ai essayé:
vector<int> v;
int i;
EXPECT_CALL(testobject, testfunction(_,_, _))
.WillOnce(testing::SetArgReferee<0>(v))
.WillOnce(testing::SetArgReferee<1>(i))
.WillOnce(Return(true));
mais ensuite il est appelé trois fois ..
Comment définir ces argReferees
et la valeur de retour une fois?
Vous combinez plusieurs actions ensemble à l'aide de l'action DoAll
:
EXPECT_CALL(testobject, testfunction(_, _, _))
.WillOnce(DoAll(SetArgReferee<0>(v), SetArgReferee<1>(i), Return(true)));
Voir Google Mock wiki CheatSheet pour plus d'informations.