Есть ли способ проверить, что код SetUp действительно работал правильно в оснастках GTest, так что весь прибор или тестовое приложение можно пометить как сбой, а не получить странные результаты теста и/или явно проверить это в каждом тест?
Можете ли вы проверить успех/неудачу SetUp в Google Test?
Ответ 1
Если вы установили код установки вашего прибора в метод SetUp
, и он не работает и выдает фатальный сбой (ASSERT_XXX
или FAIL
макросы), Google Test не будет запускать ваш тестовый объект. Итак, все, что вам нужно написать, это
class MyTestCase : public testing::Test {
protected:
bool InitMyTestData() { ... }
virtual void SetUp() {
ASSERT_TRUE(InitMyTestData());
}
};
TEST_F(MyTestCase, Foo) { ... }
Тогда MyTestCase.Foo
не будет выполняться, если InitMyTestData()
возвращает false. Если у вас уже есть нефатальные утверждения в вашем установочном коде (т.е. EXPECT_XXX
или ADD_FAILURE
), вы можете генерировать фатальное утверждение из них, написав ASSERT_FALSE(HasFailure());
. Вы можете найти больше информации об обнаружении сбоев в тесте Google расширенное руководство wiki page.