web-dev-qa-db-fra.com

google mock: comment puis-je "ATTENDRE" qu'aucune méthode ne sera appelée sur un mock

Je veux tester en cas d'échec aucune méthode ne sera appelée sur un objet fictif, en utilisant google fictif. donc le code soit quelque chose comme:

auto mocObj = new MockObj;
EXPECT_NO_METHOD_CALL(mocObj); //this is what I'm locking for

auto mainObj = new MainObj(mocObj , ......and other mocks); // here I simulate a fail using the other mock objects, and I want to be sure the no methods are called on the mockObj
23
angela d

Créer une StrictMock; tout appel de méthode inattendu sera un échec.

15
ephemient

Il n'est pas nécessaire d'indiquer explicitement qu'aucune méthode ne sera appelée. Si vous définissez un niveau de consignation suffisamment élevé, vous devriez recevoir un message si une méthode est appelée (si aucune attente n'est définie).

Sinon, vous pouvez définir des attentes comme ceci:

EXPECT_CALL( mockObj, Foo(_) ).Times(0);

sur toutes les méthodes.

40
BЈовић

Utilisez Exactement (0) pour toutes vos méthodes de classe.

la cardinalité sera mise à zéro afin que vous n'attendiez aucun appel

1
Gianluca Ghettini