2011-01-19 17 views

cevap

16

bir yıkıcı çağrısı olup olmadığını kontrol etmek kolay bir yolu: Test fonksiyonunda

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

Detaylar burada bulabilirsiniz: Mocking Destructors

3

Siz değilseniz --gmock_catch_leaked_mocks=0'u geçerken, gmock bir sahtekarlığı yok etmediğinizde zaten tespit etmelidir. Yıkıcı, tatmin edici beklentilerin hata olarak işaretlendiği yerdir, bu nedenle gmock'un çağrılmadığı zaman tespit edilmesine özel bir desteği vardır.

+0

Yine de bir uyarı var: GMock * onlara bağlı herhangi bir beklentisi olmayan sızan alayları algılamayacaktır * (ON_CALL/EXPECT_CALL). Bunun nedeni, sızıntı kontrolünün GTest kaydı adı verilen özel varlıkta saklanan bilgilere dayanması ve beklentileri olmayan alayların kayıtlı olmamasıdır. – r5ha

İlgili konular