gtest中死亡测试
“死亡测试”用于测试程序是否会按照预期的方式崩溃。
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中死亡测试相关推荐
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
一.前言 "死亡测试"名字比较恐怖,这里的"死亡"指的的是程序的崩溃.通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要 ...
- Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用
死亡测试是为了判断一段逻辑是否会导致进程退出而设计的.这种场景并不常见,但是GTest依然为我们设计了这个功能.我们先看下其应用实例.(转载请指明出于breaksoftware的csdn博客) 死亡测 ...
- gtest 中Setup TearDown SetUpTestCase和TearDownTestCase 的区别
前言 在单元测试中,我们经常需要在某个测试套件.测试用例或者整个测试运行之前进行前置条件设置及检查,或者运行之后对运行结果进行校验等操作.在gtest中,称之为事件机制.gtest将事件按照作用的范围 ...
- 测试驱动开发与行为驱动开发中的测试先行方法
Gil Zilberfeld将在 Agile Practitioners会议上举办小型研讨会,讨论测试先行(test first)方法,测试驱动开发(TDD)和行为驱动开发(BDD)的基础. \\ \ ...
- Python中的测试工具
当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐.在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程 ...
- python代码测试工具模块_详解Python中的测试工具
当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐.在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程 ...
- Spring Boot中的测试
文章目录 简介 添加maven依赖 Repository测试 Service测试 测试Controller @SpringBootTest的集成测试 Spring Boot中的测试 简介 本篇文章我们 ...
- junit 测试执行顺序_JUnit 5中的测试执行顺序
junit 测试执行顺序 一般实践认为,自动化测试应能够独立运行且无特定顺序,并且测试结果不应依赖于先前测试的结果. 但是在某些情况下,可以证明特定的测试执行顺序是正确的,尤其是在集成或端到端测试中. ...
- JUnit 5中的测试执行顺序
一般实践认为,自动化测试应能够独立运行且无特定顺序,并且测试结果不应依赖于先前测试的结果. 但是在某些情况下,可以证明特定的测试执行顺序是正确的,尤其是在集成或端到端测试中. 默认情况下,在JUnit ...
- 简单的11步在Laravel中实现测试驱动开发
测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名. 下文是我在Mediu ...
最新文章
- 没有绿幕,AI也能完美视频抠图,发丝毕现,毫无违和感 | CVPR
- 不同操作系统之间的网络配置
- SQL_MODE设置
- MAVEN项目标准目录结构 ;
- php遍历数组的四种方法,PHP遍历数组的常见几种方法
- concat mysql sql注入_Mysql中用concat函数执行SQL注入查询的方法
- halcon算子翻译——estimate_noise
- 上世纪军用设备仍在继续使用,美军E-3G预警机升级改造后易被黑客攻击
- type=button 字体大一点_CAD设计师喜欢用SHX字体的原因你知道吗?
- Godot Timer节点
- h5游戏php语言什么意思,h5游戏是什么意思?
- 服务认证的介绍-实施依据及作用
- 2021年西式面点师(初级)及西式面点师(初级)模拟试题
- html--样式的建立style,css样式
- vue+echarts实现仪表盘
- 教你如何暴力破解wifii密码
- 狂刷《Java权威面试指南(阿里版)》,助你一臂之力,事半功倍
- 2022-2028全球及中国NTC热敏电阻电缆行业研究及十四五规划分析报告
- 曾国藩经典人生哲理语录
- python中str()的使用