reference gmock

reference - Parámetros de entrada y salida múltiples gmock SetArgReferee



(1)

Tengo una interfaz Itest:

class Itest { bool testfunction(vector<int>& v, int& id); }

Puedo burlarme de ello con:

MOCK_METHOD2(testfunction, bool(vector<int>&, int&))

¿Pero cómo puedo establecer los valores de retorno?

Lo intenté:

vector<int> v; int i; EXPECT_CALL(testobject, testfunction(_,_, _)) .WillOnce(testing::SetArgReferee<0>(v)) .WillOnce(testing::SetArgReferee<1>(i)) .WillOnce(Return(true));

pero luego se llama tres veces ..

¿Cómo establezco estos argReferees y el valor de retorno una vez?


DoAll varias acciones juntas usando la acción DoAll :

EXPECT_CALL(testobject, testfunction(_, _, _)) .WillOnce(DoAll(SetArgReferee<0>(v), SetArgReferee<1>(i), Return(true)));

Ver Google Mock wiki para más información.