2016-06-29 60 views
0

我正在使用C++單元測試使用google單元測試框架(fixtures),清理後對測試非常重要。但是,如果發生異常,則可執行文件崩潰並且清理從不發生。即使在例外的情況下,是否有強制清理的方法?清理異常後谷歌C++測試框架

+1

抓住例外? –

回答

0

Test Fixtures有特殊的構造和破壞方法。
他們被稱爲SetUp()TearDown()

在您的TearDown()方法中放置適當的清理代碼。

class FooTest : public ::testing::Test 
{ 
    TestObject *object; 
    virtual void SetUp() 
    {  
     TestObject = new TestObject(); 
    } 

    virtual void TearDown() 
    { 
     //clean up occurs when test completes or an exception is thrown 
     delete object; 
    } 
}; 

它建議使用smart pointers,並按照RAII的做法,但我知道,這取決於它是什麼你正在測試(例如傳統的C API)來是不可能的。

除此之外,你總是可以捕獲異常,並處理catch的清理。