Я создаю функцию C ++, подобную следующей:
int NeedTest(Pointer* b)
{
if(b == nullptr)
{
_ASSERTE(!"pointer is null.");
return 0;
}
else
{
//do something
return 1;
}
}
Теперь я хочу убедиться, что при передаче нулевого указателя в эту функцию она вернет 0 и сработает _ASSERTE
.Тем не менее, я несколько раз пытался выполнить тест на смертность для этой функции, похоже, что диалоговое окно подтверждения отладки все еще отображается и завершилось неудачно, так как это утверждение отладки не «смерть», оно только показывает диалоговое окно подтверждения отладки в режиме отладки и когда я нажимаю »игнорировать ", процесс может продолжаться.В этом случае тест на смерть не подходит.
TEST(Mytest,test1)
{
EXPECT_DEATH(NeedTest(nullptr), "success");
}
Тест Google не пройден, так как он НЕ «умер» и отображается диалоговое окно подтверждения отладки.Есть ли в любом случае в тесте Google, что я могу EXPECT_DEBUG_ASSERTION_HAPPEN
и не отображать диалог подтверждения отладки в тесте Google?Я хочу проверить, что мой код содержит _ASSERTE
в режиме отладки.Я также попробовал EXPECT_DEATH_IF_SUPPORTED
и EXPECT_DEBUG_DEATH
, никто из них не может нажать на диалоговое окно и сказать, что тест пройден.