очистить после исключения Google C ++ тестовый фреймворк

Я использую модульные тесты C ++ с использованием фреймворка модульных тестов Google (приспособления), очистка после тестов очень важна для меня. Но в случае исключения исполняемый файл вылетает и очистка никогда не происходит. Есть ли способ принудительной очистки даже в случае исключений?

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

Рекомендуется использовать умные указатели, и следовать RAII практики, но я понимаю, что это не всегда возможно в зависимости от того, что вы тестируете (например, устаревшие API C).

Кроме того, вы всегда можете просто перехватить исключение и выполнить очистку при вылове.

0

Другие решения

Других решений пока нет …