2

非仮想メソッドのみを持つクラスをモックする必要があります。このクラスにはコピー コンストラクターがあります。そのためのモックメソッドの書き方。をそのまま使用すると、コンパイラ エラーが発生します。

MOCK_METHOD1(classname, void(classname& source)); 

前もって感謝します。

4

1 に答える 1

6

gmock で非仮想関数をモックすることはできません。したがって、考慮すべき最初の代替案は、関数を仮想化することです。関数を仮想化することによるパフォーマンスのオーバーヘッドが気になる場合は、これが本当に問題であることを (測定によって) 確認してください。通常はそうではありません。

関数を仮想化する可能性がない場合の代替ソリューションは、テンプレートを使用することです。この手法の詳細についてはこの質問、使用の長所と短所についてはこの質問を参照してください。

于 2011-06-05T07:01:03.480 に答える