我正在测试CHECK
从glog使用的一些代码,并且我想测试在某些情况下此检查失败。我的代码如下:
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_FALIURE
,EXPECT_NONFATAL_FAILURE
和HAS_FATAL_FAILURE
,但我没有设法弄清楚如何使用它们。我非常有信心,如果我更改CHECK(some_flag)
为,EXPECT_TRUE(some_flag)
那么EXPECT_FATAL_FAILURE
它将可以正常工作,但是随后我在非测试文件中引入了测试依赖项,这很糟糕。
有没有办法gtest
捕获异常终止信号(或任何CHECK
引发的异常)并对其进行预期?
在发布此问题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] 删除。
我来说两句