gpt4 book ai didi

c++ - assert() 意外触发时如何抑制 Google 测试中的终止?

转载 作者:行者123 更新时间:2023-11-30 01:43:33 35 4
gpt4 key购买 nike

Here它讨论了如何捕获失败的断言,例如你设置你的夹具,使 assert() 失败,你会看到很好的输出。但我需要的恰恰相反。我想测试 assert() 是否成功。但如果它失败了,我希望得到好的输出。那时它只是在遇到 assert() 时终止。

#define LIMIT 5

struct Obj {
int getIndex(int index) {
assert(index < LIMIT);
// do stuff;
}
}

Obj obj;

TEST(Fails_whenOutOfRange) {
ASSERT_DEATH(obj->getIndex(6), "");
}

TEST(Succeeds_whenInRange) {
obj->getIndex(4);
}

以上是人为的例子。我希望第二个测试在失败时不终止,例如,如果我将 LIMIT 设置为 3。毕竟,当 assert() 失败时,ASSERT_DEATH 会以某种方式抑制终止。

最佳答案

您应该尝试使用命令行选项 --gtest_break_on_failure

它旨在在调试器中运行测试,因此您可以在测试失败时获得断点。如果您不使用调试器,您只会收到 SEGFAULT 并且执行将停止。

关于c++ - assert() 意外触发时如何抑制 Google 测试中的终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37499284/

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