Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
非仮想メソッドのみを持つクラスをモックする必要があります。このクラスにはコピー コンストラクターがあります。そのためのモックメソッドの書き方。をそのまま使用すると、コンパイラ エラーが発生します。
MOCK_METHOD1(classname, void(classname& source));
前もって感謝します。
gmock で非仮想関数をモックすることはできません。したがって、考慮すべき最初の代替案は、関数を仮想化することです。関数を仮想化することによるパフォーマンスのオーバーヘッドが気になる場合は、これが本当に問題であることを (測定によって) 確認してください。通常はそうではありません。
関数を仮想化する可能性がない場合の代替ソリューションは、テンプレートを使用することです。この手法の詳細についてはこの質問を、使用の長所と短所についてはこの質問を参照してください。