les interfacesQuel est le moyen le plus simple d'invoquer une fonction membre sur un argument passé à une fonction mockée?
Compte tenuclass IFooable {
virtual void Fooable() = 0;
};
class IFoo {
virtual void Foo(IFooable* pFooable) = 0;
};
et la Goole maquette maquette
class TMockFoo : public IFoo {
MOCK_METHOD1(Foo, void (IFooable*));
};
ce qui est la meilleure façon de spécifier une action qui appelle Fooable()
sur l'argument à la méthode moqué Foo()
?
J'ai essayé
TMockFoo MockFoo;
ON_CALL(MockFoo, Foo(_))
.WithArg<0>(Invoke(&IFooable::Fooable));
mais cela ne compile pas parce Invoke()
avec un argument attend une fonction libre, pas une fonction de membre.
L'utilisation de boost::bind
devrait probablement fonctionner, mais ne rendra pas nécessairement le code trop lisible. Avant que j'écrive un Action
personnalisé, j'ai voulu vérifier si je ne manque pas quelque chose de totalement évident.
S'il vous plaît ne * simulacre * personne. Mauvaise habitude: P – Nawaz