gpt4 book ai didi

c++ - Google 测试中的 EXPECT_NO_DEATH()

转载 作者:行者123 更新时间:2023-12-01 22:43:26 25 4
gpt4 key购买 nike

有一些有用的 EXPECT_DEATH() 和一系列规则来检查您的程序是否按预期终止,但是是否存在负 EXPECT_NO_DEATH() 设置或类似设置?作为一个人工示例:

void should_i_die(bool die)
{
if (die) { printf("Aaargh!"); exit(-1); }
else printf("I'm not dead yet!");
}

EXPECT_DEATH(should_i_die(true), "Aaargh.*");
EXPECT_NO_DEATH(should_i_die(false), ".*"); // What should be here?

只有一个独立的:

should_i_die(false);
EXPECT_TRUE(true); // We're not dead if we reach here

感觉有点逃避,那么有更好的方法吗?

最佳答案

我认为这样的东西应该有效(尽管我自己没有尝试过)。

EXPECT_EXIT({should_i_die(false); fprintf(stderr, "Still alive!"); exit(0);},
::testing::ExitedWithCode(0), "Still alive!");

退出是需要 AFAICT 的,因为活过死亡测试结束就被认为是失败。

您可以创建一个包装器来使其不那么难看。

关于c++ - Google 测试中的 EXPECT_NO_DEATH(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60594487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com