GooglTest GoogleMock 实践感想三 死亡测试初步(1)
刚接触到死亡测试时,感到很新鲜。但按着找到的例子运行后还显示运行错误。
例子源码为
void Foo()
{// Foo() 该函数在实际运行时异常退出
int *pInt = 0;
*pInt = 42 ;
}
TEST(FooDeathTest, Demo)
{ EXPECT_DEATH(Foo(), "");
}
修改为:
void Foo()
{//Foo() 该函数在实际运行时异常退出
int *pInt = 0;
assert(pInt);
*pInt = 42 ;
};
TEST(FooDeathTest, Demo)
{
EXPECT_DEATH(Foo(), "\\d");
}
运行正常。
看来所谓的死亡测试用例的目的就在于监督是否添加了assert(...)等断言,以及抛出的断言信息是否符合预期。
该例子中assert()抛出 整形的异常代码 0/1;“\\d”:匹配任何数字型代码见 regex)
好东西。测试健壮性的好工具。
类似,监视异常抛出:
TEST(FooTest, HandleZeroInput)
{
//抛出任何类型的异常
EXPECT_ANY_THROW(Foo(10, 0));
//抛出异常信息为字串
EXPECT_THROW(Foo(0, 5), char*);
/// \ 抛出的异常信息是整形
EXPECT_THROW(FooInt(0, 6),int);
}
GooglTest GoogleMock 实践感想三 死亡测试初步(1)相关推荐
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
一.前言 "死亡测试"名字比较恐怖,这里的"死亡"指的的是程序的崩溃.通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要 ...
- 基于Sql Server 2008的分布式数据库的实践(三)
原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...
- [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)
本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...
- 北邮计算机网络实践实验三,北邮计算机网络技术实践--实验三
北邮计算机网络技术实践--实验三 (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 计算机网络技术实践实验报告实验名称 RIP和OS ...
- 扫雷游戏软件测试,暑期社会实践 | 扫雷游戏的测试完善及总结
原标题:暑期社会实践 | 扫雷游戏的测试完善及总结 在程序的前期准备和代码功能实现的基础上,信息工程学院扫雷少女101团队成员针对已具备基本雏形的扫雷游戏进行全方位仔细的测试,来发现程序现有或是未知的 ...
- 软工实践第三次作业-结对项目1
软工实践第三次作业-结对项目1 简要目录: Step1 · 结对信息 成员信息 项目简介 Step2 · 项目信息 设计说明 原型模型 Step3 · 结对过程 ...
- Android 持续集成实践(三)——编写 .gitlab-ci.yml 实现自动化
文章目录 前言 系列文章 Android 持续集成实践(三)--编写 .gitlab-ci.yml 实现自动化 要实现的效果 定义 gitlab-ci 工作场景阶段 定义 build 任务 定义 re ...
- 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇
本文由百度技术团队"蔡锐"原创发表于"百度App技术"公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. ...
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)
AlexeyAB DarkNet YOLOv3框架解析与应用实践(三) ImageNet分类 您可以使用Darknet为1000级ImageNet挑战赛分类图像.如果你还没有安装Darknet,你应该 ...
- Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用
死亡测试是为了判断一段逻辑是否会导致进程退出而设计的.这种场景并不常见,但是GTest依然为我们设计了这个功能.我们先看下其应用实例.(转载请指明出于breaksoftware的csdn博客) 死亡测 ...
最新文章
- Docker安全之用户资源隔离
- 《Flowable基础二 Flowable是什么》
- linux下程序如何实现单实例运行
- controller如何保证当前只有一个线程执行_聊聊Spring线程安全,读完之后,大部分程序员收藏了......
- stm32使用stlink烧录后jlik烧不进去_【MCU实战经验】+用stm32单片机做J-Link和ST-Link...
- Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]
- unity3 学习localPosition, Position区别,itween插件,计算距离
- Opencv Camshift对象跟踪
- 基于java的在校大学生贷款管理系统
- Unity下载安装和Android打包成APK
- privilege instruction error
- 手把手教你做一个网页
- 北京超级云计算中心操作训练指南
- 數據驅動的到底是什麼
- 深度学习-聊天机器人
- 那些你觉得堪称神兵利器的 Chrome 插件
- iw在java中什么意思,请问程序里piw和iw有什么区别
- python多路分支_用于多个参数的python multiprocessing pool.map
- python怎么将字符串逆序_python中如何把一个字符串顺序逆序反转的几种方法?
- 神经网络处理器设计原理,神经网络控制系统设计
热门文章
- Vue单页面与多页面的区别
- iOS9 未受信任的企业级开发者
- linux 安装minio并设置开机自启动
- 无法完成windows正版认证
- npm学习(十七)之node_modules中的bin文件夹
- 2008 r2 server sql 中文版补丁_sql server 2008 r2 sp4下载-SQL Server 2008 sp4补丁3264位 简体中文完整版-东坡下载...
- ASP.NET+Sql Server 2008 +highchart控件从数据库中获取数据生成饼状图柱状图
- 三维点云语义分割基础知识
- 手把手教你搭建织女星开发板RISC-V开发环境
- 一阶逻辑形式推理系统