相关的配置与参考可以看相同系列的第一篇。本篇只提供代码。

#include "gtest/gtest.h"
#include <list>#ifndef _WIN64
#pragma  comment(lib,"../lib86/gmock.lib")
#pragma  comment(lib,"../lib86/gmock_main.lib")
#pragma  comment(lib,"../lib86/gtest.lib")
#pragma  comment(lib,"../lib86/gtest_main.lib")
#else
#pragma  comment(lib,"../lib64/gmock.lib")
#pragma  comment(lib,"../lib64/gmock_main.lib")
#pragma  comment(lib,"../lib64/gtest.lib")
#pragma  comment(lib,"../lib64/gtest_main.lib")
#endif // !_WIN64/*
参考链接
https://cloud.tencent.com/developer/article/1383790
*/
/*
死亡测试
1、*_DEATH(statement, regex`)
参数1 statement是被测试的代码语句
参数2regex是一个正则表达式,用来匹配异常时在stderr中输出的内容
///编写死亡测试案例时,TEST的第一个参数,即testcase_name,请使用DeathTest后缀。原因是gtest会优先运行死亡测试案例,应该是为线程安全考虑。2、*_EXIT(statement, predicate, regex`)
参数1statement是被测试的代码语句
参数2predicate 在这里必须是一个委托,接收int型参数,并返回bool。
参数3regex是一个正则表达式,用来匹配异常时在stderr中输出的内容
*//*
如果测试夹具类由普通测试和死亡测试共享,则可以使用
使用“or”或“typedef”为测试夹具类引入别名并避免重名class FooTest : public ::testing::Test { ... };using FooDeathTest = FooTest;TEST_F(FooTest, DoesThis) {
// normal test
}TEST_F(FooDeathTest, DoesThat) {
// death test
}
*/
void Foo()
{std::cerr << "Failed Foo";_exit(0);
}TEST(MyDeathTest, Foo)
{//设置此时的模式,默认"fast";其他"threadsafe";testing::FLAGS_gtest_death_test_style = "fast";//".*Foo"匹配上了测试预期,".*FAAA"而第6行没有。//EXPECT_DEATH(Foo(), ".*Foo");//EXPECT_DEATH(Foo(), ".*FAAA");EXPECT_EXIT(Foo(), ::testing::ExitedWithCode(0), ".*Foo");
}int main(int argc, char **argv) {try{testing::InitGoogleTest(&argc, argv);RUN_ALL_TESTS();}catch (std::exception& e){std::cout << e.what() << std::endl;}system("pause");return 0;
}

gtest学习笔记--5 死亡测试相关推荐

  1. GTest学习笔记(一)

    GTest学习笔记(一) 环境准备:CMake+Visual Studio 原博客: (20条消息) 记gtest1.10.0安装过程及简单使用_wingrez的博客-CSDN博客 使用GTest搭建 ...

  2. 中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学)

    中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学) 第1周 Python初探 为project设置解释器 保留字 第1周课后测试题 第2周 基本运算.条件分支和输出格式控制 ...

  3. Maven 学习笔记 - 跳过测试 skipTests

    Maven 学习笔记 - 跳过测试 方案一 idea中操作 方案二 maven命令 方案三 maven打包插件配置 1. 跳过所有测试 2. 详细指定:包含.排除 参考资料 方案一 idea中操作 打 ...

  4. ROS_RGB-D SLAM学习笔记--室内环境测试

    ROS_RGB-D SLAM学习笔记 RTAB-Map's ros-pkg. RTAB-Map is a RGB-D SLAM approach with real-time constraints. ...

  5. go-pitaya学习笔记(3)-小小的测试

    学习笔记: 我家别墅靠大海/pitaya-learn 尝试集成功能:我家别墅靠大海/pitaya-game 如果你正在看此笔记,请你左边放笔记,右边放chatdemo的代码!! 我是按代码的顺序记的笔 ...

  6. 【学习笔记】APP测试基本流程及测试要点

    APP测试基本流程以及APP测试要点 APP测试流程梳理 APP测试要点梳理 1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即1 ...

  7. Docker学习笔记五 在测试中使用Docker

    2019独角兽企业重金招聘Python工程师标准>>> 5.1 使用Docker测试静态网站(Nginx) 将项目命名为Sample 首先建立构建环境 mkdir sample cd ...

  8. 【学习笔记】常见测试类型测试方法

    测试类型: 质量属性解决的是要从哪些角度去设计产品才能满足用户的需求,那么测试类型解决的就是测试要从哪些角度去分析和测试产品: 测试方法: 测试类型讨论了要从哪些角度去测试产品,确定了测试的思路,那具 ...

  9. gtest学习笔记--2测试夹具(类)TEST_F

    相关的配置与参考可以看相同系列的第一篇.本篇只提供代码. test_02.h #ifndef GTEST_SAMPLES_SAMPLE3_INL_H_ #define GTEST_SAMPLES_SA ...

  10. Mysql的学习笔记1-配置+测试(部分摘自慕课)

    记住:一定要把mysql的子目录bin配置到环境变量中(否则系统将提示错误): 安装好后,可输入net start mysql进行启动(mysql要查看服务器的名称进行正确的输入,我的是mysql56 ...

最新文章

  1. 在VirtualBox下安装linux操作系统
  2. 人工智能再下一城,在多人扑克中大胜人类
  3. 无BOM禁止转生产订单
  4. 转Delphi中Create(nil),Create(self),Create(Application)区别
  5. Gauss高斯消元——模板
  6. android prebuild第三方so库,Android NDK编译本地文件以及引用第三方so文件
  7. JavaScript——this与箭头函数
  8. 最顶尖的12个IT技能
  9. Flash遮罩层初识
  10. 通过了注册电气工程师考试的, 介绍 经验
  11. linux的键盘命令用户登录,linux 基础命令
  12. linux 桌面美化指南,Linux_9方面立体式地美化Ubuntu桌面,总结了一下桌面美化的设置。 - phpStudy...
  13. Windows系统封装(四)正式封装和测试。
  14. memcmp的性能分析
  15. 安卓手机如何更改开机 关机 动画
  16. 微信公众号最佳实践 ( 7.5 )股票行情及分析
  17. python 利用递归算法来完成计算乘阶、斐波那契数列、汉诺塔
  18. 不靠谱的预测:今年双十一的销量是 6213 亿元
  19. linux修改sda3时间,Linux服务器磁盘占满问题解决(/dev/sda3 满了)
  20. 百度NLP十年布局:翻越认知智能高山,架起通往现实世界的桥

热门文章

  1. 网络层—简单的arp断网
  2. 涉及到的非线性滤波算法 -- 理解
  3. AnimeGAN v2:动漫风格化GAN
  4. 【案例24】NC6.3-6.3X前台无法录spr日志
  5. Google回归中国,你准备好成为Googler了吗?
  6. CTS测试中testYuvBurst[1]项
  7. HttpClient发送请求时动态替换目标ip
  8. detached entity passed to persist:xxx;
  9. ubuntu16 解决机箱前置耳机无声
  10. 计算机ms一级分数分配,计算机一级六大MS题型介绍