我正在使用Google测试框架编写一些单元测试。但是我想检查一些断言是否位置合适并且有用。有没有办法在Google测试中捕获断言?
示例代码在测试中:
int factorial(int n){
assert(n >= 0);
//....
}
然后是测试:
#include <gtest/gtest.h>
TEST(FactorialTest,assertNegative){
EXPECT_ANY_THROW({
factorial(-1);
});
}
但是EXPECT_ANY_THROW
不能捕获断言,而只能捕获异常。我正在寻找捕获断言的解决方案。
Google测试提供ASSERT_DEATH
, EXPECT_DEATH
and other related macros。
这个问题和ASSERT_DEATH
是彼此的答案。这会使它们重复吗? ;-)
failing ASSERT_x或EXECT_x,则[[EXPECT_FATAL_FAILURE(语句,文本)和EXPECT_NONFATAL_FAILURE(语句,文本)将仅通过。这些语句将通过您的测试:
EXPECT_DEATH