J'utilise Gmock dans mon projet. J'ai la fonction fictive suivante.Gmock - Comment définir une valeur de paramètre de fonction fictive à partir d'un paramètre d'entrée?
MOCK_METHOD2(helper,
bool(const std::string&, std::string*));
L'objectif est de définir la valeur du paramètre 1 sur le paramètre 2 pour tous les appels fictifs.
J'ai fait ce qui suit.
std::string temp;
EXPECT_CALL(
MockObj,
helper(_,_))
.WillRepeatedly(
DoAll(SaveArg<0>(&temp), //Save first arg to temp
SetArgPointee<1>(temp), //assign it to second arg
Return(true)));
Cependant, je vois que le paramètre 2 est réglé sur la valeur d'origine de tmp plutôt que sur la valeur enregistrée. Y a-t-il un autre moyen de résoudre ce problème? Je veux rendre cette EXPECT_CALL dynamique plutôt que de faire SetArgPointee < 1> ("testval").
Merci de l'avoir signalé. Nous avons fini avec l'aide d'un lambda Invoke - .WillRepeatedly (DOALL ( Invoke ([] (const std :: string et entrée, std :: string * Sortie) {* sortie = entrée; }), Retour (true))); – balajiboss