“死亡测试”用于测试程序是否会按照预期的方式崩溃。
1.执行顺序
编写死亡测试时,在测试中第一个参数以“DeathTest”为结尾,运行测试时会优先于其他测试用例

using namespace std;void Foo(){int *p=0;*p = 42;
}int Add(int a,int b){return a+b;
}TEST(TestAdd, demo1){EXPECT_EQ(3,Add(1,2));cout<<"demo1 run........"<<endl;
}TEST(FooDeathTest, demo2){EXPECT_DEATH(Foo(),"");cout<<"DeathTest........"<<endl;
}int main(int argc, char *argv[])
{testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}

测试结果:

2.正则表达式
*_DEATH()语句中第二个变量可使用正则表达式匹配崩溃程序输出的异常信息
简单示例
A? matches 0 or 1 occurrences of A

void Foo(){int a = 1;int b = 0;int c = a/b;
}TEST(FooDeathTest, demo2){EXPECT_DEATH(Foo(),"A?");cout<<"DeathTest........"<<endl;
}

测试结果:

源码地址

gtest中死亡测试相关推荐

  1. 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试

    一.前言 "死亡测试"名字比较恐怖,这里的"死亡"指的的是程序的崩溃.通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要 ...

  2. Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用

    死亡测试是为了判断一段逻辑是否会导致进程退出而设计的.这种场景并不常见,但是GTest依然为我们设计了这个功能.我们先看下其应用实例.(转载请指明出于breaksoftware的csdn博客) 死亡测 ...

  3. gtest 中Setup TearDown SetUpTestCase和TearDownTestCase 的区别

    前言 在单元测试中,我们经常需要在某个测试套件.测试用例或者整个测试运行之前进行前置条件设置及检查,或者运行之后对运行结果进行校验等操作.在gtest中,称之为事件机制.gtest将事件按照作用的范围 ...

  4. 测试驱动开发与行为驱动开发中的测试先行方法

    Gil Zilberfeld将在 Agile Practitioners会议上举办小型研讨会,讨论测试先行(test first)方法,测试驱动开发(TDD)和行为驱动开发(BDD)的基础. \\ \ ...

  5. Python中的测试工具

    当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐.在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程 ...

  6. python代码测试工具模块_详解Python中的测试工具

    当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐.在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程 ...

  7. Spring Boot中的测试

    文章目录 简介 添加maven依赖 Repository测试 Service测试 测试Controller @SpringBootTest的集成测试 Spring Boot中的测试 简介 本篇文章我们 ...

  8. junit 测试执行顺序_JUnit 5中的测试执行顺序

    junit 测试执行顺序 一般实践认为,自动化测试应能够独立运行且无特定顺序,并且测试结果不应依赖于先前测试的结果. 但是在某些情况下,可以证明特定的测试执行顺序是正确的,尤其是在集成或端到端测试中. ...

  9. JUnit 5中的测试执行顺序

    一般实践认为,自动化测试应能够独立运行且无特定顺序,并且测试结果不应依赖于先前测试的结果. 但是在某些情况下,可以证明特定的测试执行顺序是正确的,尤其是在集成或端到端测试中. 默认情况下,在JUnit ...

  10. 简单的11步在Laravel中实现测试驱动开发

    测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名. 下文是我在Mediu ...

最新文章

  1. 没有绿幕,AI也能完美视频抠图,发丝毕现,毫无违和感 | CVPR
  2. 不同操作系统之间的网络配置
  3. SQL_MODE设置
  4. MAVEN项目标准目录结构 ;
  5. php遍历数组的四种方法,PHP遍历数组的常见几种方法
  6. concat mysql sql注入_Mysql中用concat函数执行SQL注入查询的方法
  7. halcon算子翻译——estimate_noise
  8. 上世纪军用设备仍在继续使用,美军E-3G预警机升级改造后易被黑客攻击
  9. type=button 字体大一点_CAD设计师喜欢用SHX字体的原因你知道吗?
  10. Godot Timer节点
  11. h5游戏php语言什么意思,h5游戏是什么意思?
  12. 服务认证的介绍-实施依据及作用
  13. 2021年西式面点师(初级)及西式面点师(初级)模拟试题
  14. html--样式的建立style,css样式
  15. vue+echarts实现仪表盘
  16. 教你如何暴力破解wifii密码
  17. 狂刷《Java权威面试指南(阿里版)》,助你一臂之力,事半功倍
  18. 2022-2028全球及中国NTC热敏电阻电缆行业研究及十四五规划分析报告
  19. 曾国藩经典人生哲理语录
  20. python中str()的使用

热门文章

  1. 前段vue+后端接口PHP实现万年历(带上节假日天干地支凶吉星座神)
  2. 终于知道超级服务器和高质量服务器的区别了
  3. 史上超全免费photoshop实训零基础视频教程,新手学习PS软件教程资源下载
  4. 2021年中国机动车保有量及机动车污染物排放情况分析[图]
  5. WAREZ无形帝国(盗版之源) (转)
  6. 不应忘却的纪念-小百合(Lilybbs)
  7. 最新kali之medusa
  8. 算法 代码拷来终觉浅,绝知此事要躬行
  9. 数据库原理及应用实验:数据库安全性控制
  10. uniapp,小程序,实现签名功能