在异常Google c ++测试框架之后进行清理

时间:2016-06-29 23:23:09

标签: c++ cunit gunit

我正在使用谷歌单元测试框架(灯具)进行C ++单元测试,测试后的清理对我来说非常重要。但是在异常的情况下,可执行文件崩溃并且清理从未发生过。有没有办法强制清理,即使是例外情况?

1 个答案:

答案 0 :(得分: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上处理清理。