2011-01-19 9 views

答えて

16

デストラクタの呼び出しをチェックする簡単な方法:あなたのテスト関数で

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()); 
    } 

詳細はここで見つけることができます: Mocking Destructors

3

あなたがしている場合を除き--gmock_catch_leaked_mocks=0を渡すと、モックを破壊しなかったときにgmockがすでに検出されているはずです。デストラクタは満足していない期待値がエラーとしてフラグされているので、gmockは呼び出されなかったときを検出する特別なサポートをしています。

+0

しかし、GMockは、(ON_CALL/EXPECT_CALL)に期待していないリークしたモックを検出しません。これは、リークチェックがGTestレジストリという特殊なエンティティに格納されている情報に基づいており、期待外れのモックが登録されていないためです。 – r5ha

関連する問題