0
私は、Google TestでASSERTの失敗に直面してTearDown()を行う方法を理解しようとしています。Google Testでは、アサーションの失敗に直面してどのように解体するのですか?
ダミー例は以下の通りです:私はacheiveしようとしている何
class TestFixture: public testing::Test
{
protected:
virtual void SetUp()
{
// Do per test setup
}
virtual void TearDown()
{
// Do per test teardown
}
}
TEST_F(TestFixture, MyTest)
{
ASSERT_TRUE(false);
}
テストがアサーションの失敗をスローした場合でも呼び出される)(ティアダウンのためです。アサーションがスローされたとき、GoogleTestはTearDown()を呼び出しません。これについてどうすればいいですか?
ライブラリがそのように動作していますか?今のところ[(r609) 'Test :: Run'](http://code.google.com/p/googletest/source/browse/trunk/src/gtest.cc#2153)は常に' TearDown'を呼び出します。 TestBodyに致命的な失敗があったとしても。 –
あなたは正しいです!テストが単独でスレッド化されている場合、TearDownは致命的な失敗に関係なく呼び出されます。なぜなら私のテストはマルチスレッドであるからです。この場合、TearDown()は呼び出されません。テストボディがアサーションをスローします: – vinodkone