Ich möchte Verweise auf die MyObjectClass-Instanz abrufen, die an "somePrivateMethod" übergeben wird und von myMock aufgerufen wird.So erhalten Sie einen Verweis auf das EXPECT_CALL-Argument
Jetzt benutze ich das folgende Snippet, aber ich bin sicher, dass es einen besseren Weg gibt.
namespace {
MyObjectClass *myObjectPtr;
ACTION(getIt)
{
myObjectPtr = &arg0;
}
}
...
...
EXPECT_CALL(*myMock, somePrivateMethod(testing::_)).WillOnce(testing::WithArg<0>(getIt()));
Mein Problem ist klar angegeben, ich muss den Verweis auf dieses Argument erhalten. Der Grund für das, was ich will, ist hier egal. Ich muss nur wissen, wie man einen Zeiger auf das Argument von somePrivateMethod setzt.
Ihr Code sollte Klasse Verhalten nicht seine interne Implementierung testen. Auch die Frage wird so schlecht ausgedrückt, dass es schwer ist, es zu verstehen. Also vermute ich [XY-Problem] (http://xyproblem.info/). –
Ich möchte es nicht testen. Ich brauche Zugriff auf das private Mitglied in diesem Fall b, aber es kann jedes Objekt sein. Mock benutze dieses Objekt als Argument. Ich versuche, SaveArg, SaveArgPointee zu verwenden, aber sie kopieren nur Wert. – pZCZ
Wenn Sie es nicht testen wollen, warum verwenden Sie 'gtest' und' gmock'? –