在gtest中如何期望程序退出?

Paymahn Moghadasian

我正在测试CHECKglog使用的一些代码,并且我想测试在某些情况下此检查失败。我的代码如下:

void MyClass::foo() {
  // stuff...
  // It's actually important that the binary gets aborted if this flag is false
  CHECK(some_flag) << "flag must be true";

  // more stuff...
}

我已经对gtest如何进行测试进行了一些研究我发现EXPECT_FATAL_FALIUREEXPECT_NONFATAL_FAILUREHAS_FATAL_FAILURE,但我没有设法弄清楚如何使用它们。我非常有信心,如果我更改CHECK(some_flag)为,EXPECT_TRUE(some_flag)那么EXPECT_FATAL_FAILURE它将可以正常工作,但是随后我在非测试文件中引入了测试依赖项,这很糟糕。

有没有办法gtest捕获异常终止信号(或任何CHECK引发的异常)并对其进行预期?

Paymahn Moghadasian

在发布此问题5分钟后,我找到了答案。典型。

可以使用gtest的死亡测试来完成。这是我的测试的样子:

TEST(MyClassTest, foo_death_test) {
  MyClass clazz(false); // make some_flag false so the CHECK fails
  ASSERT_DEATH( { clazz.foo(); }, "must be true");
}

这样过去了。hoo!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章