c++ - 如何通过 Google 测试捕捉断言?

标签 c++ unit-testing googletest assertions

我正在使用 Google 测试框架编写一些单元测试。但我想检查一些断言是否放置得当并且有用。有没有办法在 Google 测试中捕获断言?

正在测试的示例代码:

int factorial(int n){
    assert(n >= 0);
    //....
}

然后是测试:

#include <gtest/gtest.h>
TEST(FactorialTest,assertNegative){
    EXPECT_ANY_THROW({
         factorial(-1);
    });
}

但是 EXPECT_ANY_THROW 不会捕获断言,而只会捕获异常。我正在寻找捕获断言的解决方案。

最佳答案

谷歌测试提供ASSERT_DEATH, EXPECT_DEATH and other related macros .

这个问题和What are Google Test, Death Tests是彼此的答案。这是否会使它们重复或不重复? ;-)

关于c++ - 如何通过 Google 测试捕捉断言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756422/

相关文章:

unit-testing - 使用 DrupalUnitTestCase 对 Drupal 进行单元测试在数据库设置上失败

unit-testing - 无法在 golang : "unable to open database file [recovered]"-error 中打开 SQLite 数据库

c++ - 为什么在堆栈对象和堆对象上使用 Times(n) 调用 gmock EXPECT_CALL 时会得到不同的结果?

c++ - 为什么 CMake 找不到 GTest(Google 测试)?

c++ - Cmake,在/usr/local/include 中找到头文件,在/usr/local/lib 中找到库

c++ - C++ 中与 Matlab 中的 wpd 和 newpnn 函数类似的函数?

c++ - Visual C++ express 2010 程序入口点 ??1task_group_context@tbb@@QAE@XZ 无法位于动态链接库 tbb.dll 中

c++ - MSVC++ 处理 unsigned long long int

ruby-on-rails - CarrierWave 多文件上传 Rails 单元测试

c++ - CMake 添加(测试)可执行文件