0

私は Google 単体テスト フレームワーク (フィクスチャ) を使用して C++ 単体テストを使用しています。テスト後のクリーンアップは私にとって非常に重要です。ただし、例外が発生した場合、実行可能ファイルはクラッシュし、クリーンアップは行われません。例外が発生した場合でもクリーンアップを強制する方法はありますか?

4

1 に答える 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;
     }
};

スマート ポインターを使用し、 RAIIの慣例に従うことをお勧めしますが、テストしているもの (従来の C API など) によっては、常に可能であるとは限りません。

それとは別に、いつでも例外をキャッチして、キャッチ時にクリーンアップを処理できます。

于 2016-06-29T23:30:11.327 に答える