我正在使用 google 单元测试框架(fixtures)使用 C++ 单元测试,测试后清理对我来说非常重要。但是如果发生异常,可执行文件会崩溃并且清理永远不会发生。即使出现异常,有没有办法强制清理?
问问题
1913 次
1 回答
0
测试夹具具有特殊的构造和破坏方法。
它们被称为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)。
除此之外,您始终可以捕获异常,并在捕获时处理清理。
于 2016-06-29T23:30:11.327 回答