GoogleMock: wie zu erwarten genau einen Anruf mit einem bestimmten argument, und siehe Diagnose auf Ausfall?

Vielleicht eine finesse Frage, mein problem ist, dass wenn ich Schreibe:

EXPECT_CALL(mock, handleMessage(_)).Times(0);                           //expectation #1
EXPECT_CALL(mock, handleMessage(Pointee(IsLike(aSpecificMessage))));    //expectation #2

... und Methode handleMessage wird einmal aufgerufen, aber mit einem anderen argument (nicht aSpecificMessage), dann ist der Fehler sieht wie folgt aus:

Mock function called more times than expected - returning default value.
    Function call: handleMessage(0x8b5378)
          Returns: false
         Expected: to be never called
           Actual: called once - over-saturated and active

Google Mock drucken nicht die Diagnose, warum das argument nicht entsprechen, das Prädikat in Erwartung #2.
Dies ist vermutlich, weil die Erwartung #1 ist das erste scheitern (?).

Wenn ich das weglasse Erwartung #1, dann wird der Fehler verbose, entlang der Linien von:

Google Mock tried the following 1 expectation, but it didn't match:

../../test/Test.cpp:143: EXPECT_CALL(mock, handleMessage(Pointee(IsLike(aSpecificMessage))))...
  Expected arg #0: points to a value that <....>
           Actual: 0xfeaf18, which points to <.....>

Ich bin mit einem benutzerdefinierten Matcher IsLike und ich ging durch das Problem der Erzeugung von sehr explizite mismatch Gründen möchte ich Sie gedruckt werden. Ich würde auch nicht aufgeben wollen, Erwartung #1 da geht das in einem "Standard" - Abschnitt und standardmäßig will ich keine Anrufe an, die spotten über den rest des tests.

InformationsquelleAutor haelix | 2014-09-26

Schreibe einen Kommentar