myMockによって呼び出された「somePrivateMethod」に渡されたMyObjectClassインスタンスへの参照を取得したいとします。EXPECT_CALL引数への参照を取得する方法
次のスニペットを使用しますが、より良い方法があると確信しています。
namespace {
MyObjectClass *myObjectPtr;
ACTION(getIt)
{
myObjectPtr = &arg0;
}
}
...
...
EXPECT_CALL(*myMock, somePrivateMethod(testing::_)).WillOnce(testing::WithArg<0>(getIt()));
私の問題は明らかに、私はその議論への言及を得る必要があります。私がそれを望む理由はここには関係ありません。私はsomePrivateMethodの引数へのポインタを設定する方法を知る必要があります。
あなたのコードは、クラスの振る舞いではないその内部実装をテストする必要があります。また、それを理解することが難しいということはひどく言われています。だから私は[XY問題](http://xyproblem.info/)を疑っています。 –
私はそれをテストしたくありません。このケースではプライベートメンバーにアクセスする必要がありますが、任意のオブジェクトにすることができます。 Mockはそのオブジェクトを引数として使用します。私はSaveArg、SaveArgPointeeを使用しようとしますが、値をコピーするだけです。 – pZCZ
テストしたくない場合、なぜ 'gtest'と' gmock'を使用しているのですか? –