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