Question

Utilisation GMock, comment puis-je vérifier que l'on appelle la destructor d'une classe? Est-il un moyen, autre que l'envelopper dans un autre de classe?

La méthode évidente, EXPECT_CALL(object, ~classtype()) donne une erreur du compilateur (gmock ne peut pas produire une méthode appelée maquette gmock_~classtype).

Était-ce utile?

La solution

Un moyen facile de vérifier un appel destructor:

class MockFoo : public Foo {
  ...
  // Add the following two lines to the mock class.
  MOCK_METHOD0(Die, void());
  virtual ~MockFoo() { Die(); }
};

Dans votre fonction de test:

 MockFoo* foo = new MockFoo;
  ...
  {
    EXPECT_CALL(*foo, Die());
  }

Plus de détails peuvent être trouvés ici:   Mocking Destructeurs

Autres conseils

Sauf si vous passez --gmock_catch_leaked_mocks=0, alors gmock devrait déjà détecter lorsque vous ne parvenez pas à détruire une maquette. Le destructor est l'endroit où les attentes non satisfaites sont signalées comme des erreurs, donc gmock a un soutien particulier pour détecter quand il est pas appelé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top