1

他の (必要な) モック インスタンスを参照するだけで公開できる複雑なモック クラスがあります。循環依存関係があるため、前方宣言を使用してこれらを解決し、具体的なコンパイル ユニットに実装を配置する必要があります (完成したクラス宣言を確認するため)。

テストケースを書くとき、これらのインスタンスを のように動作させたいのですがtesting::NiceMock<T>、これを達成する方法がわかりません。

testing::NiceMock<ExposedMockClass>*公開された参照をorに置き換えることは、その時点で前方宣言されているだけなtesting::NiceMock<ExposedMockClass>&ので機能しません。ExposedMockClass

これを達成するために gmock オンボード ユーティリティで利用できる手法はありますか?

4

1 に答える 1

1

NiceMock<T>から継承してTいるので、それが NiceMock であることを知る必要があるのは、それを作成するものだけです。それ以降は、 として処理できますT

たとえば、次のようにしてもまったく問題ありません。

ExposedMockClass* mockObject = new testing::NiceMock<ExposedMockClass>();
EXPECT_CALL(*mockObject, exampleFunction(_,_));
于 2013-07-10T00:09:51.560 に答える