私は Google 単体テスト フレームワーク (フィクスチャ) を使用して 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;
}
};
スマート ポインターを使用し、 RAIIの慣例に従うことをお勧めしますが、テストしているもの (従来の C API など) によっては、常に可能であるとは限りません。
それとは別に、いつでも例外をキャッチして、キャッチ時にクリーンアップを処理できます。
于 2016-06-29T23:30:11.327 に答える