GMOCKを使用して、デストラクタコールを確認します
-
12-10-2019 - |
質問
Gmockを使用して、クラスのデストラクタが呼び出されていることを確認するにはどうすればよいですか?以外の方法はありますか 別のクラスで包みます?
明らかな方法、 EXPECT_CALL(object, ~classtype())
コンパイラエラーが生成されます(Gmockは呼ばれるモックメソッドを作成できません gmock_~classtype
).
解決
Destructorコールを確認する簡単な方法:
class MockFoo : public Foo {
...
// Add the following two lines to the mock class.
MOCK_METHOD0(Die, void());
virtual ~MockFoo() { Die(); }
};
テスト機能で:
MockFoo* foo = new MockFoo;
...
{
EXPECT_CALL(*foo, Die());
}
詳細については、こちらをご覧ください。 モッキングデストラクタ
他のヒント
あなたが通過しない限り --gmock_catch_leaked_mocks=0
, 、その後、Gmockは模擬を破壊しなかったときに既に検出されているはずです。破壊者は、不満の期待がエラーとしてフラグを立てる場所であるため、Gmockは呼び出されない場合に検出するための特別なサポートを持っています。
所属していません StackOverflow