0
Googleユニットテストフレームワーク(フィクスチャ)を使用してC++単体テストを使用しています。しかし、例外の場合、実行可能ファイルがクラッシュし、クリーンアップが起こらない。例外の場合でもクリーンアップを強制する方法はありますか?例外処理後にクリーンアップするGoogle C++テストフレームワーク
Googleユニットテストフレームワーク(フィクスチャ)を使用してC++単体テストを使用しています。しかし、例外の場合、実行可能ファイルがクラッシュし、クリーンアップが起こらない。例外の場合でもクリーンアップを強制する方法はありますか?例外処理後にクリーンアップするGoogle 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のクリーンアップを処理できます。
例外をキャッチしますか? –