刚接触到死亡测试时,感到很新鲜。但按着找到的例子运行后还显示运行错误。

例子源码为

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)相关推荐

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

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

  2. 基于Sql Server 2008的分布式数据库的实践(三)

    原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...

  3. [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)

    本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...

  4. 北邮计算机网络实践实验三,北邮计算机网络技术实践--实验三

    北邮计算机网络技术实践--实验三 (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 计算机网络技术实践实验报告实验名称 RIP和OS ...

  5. 扫雷游戏软件测试,暑期社会实践 | 扫雷游戏的测试完善及总结

    原标题:暑期社会实践 | 扫雷游戏的测试完善及总结 在程序的前期准备和代码功能实现的基础上,信息工程学院扫雷少女101团队成员针对已具备基本雏形的扫雷游戏进行全方位仔细的测试,来发现程序现有或是未知的 ...

  6. 软工实践第三次作业-结对项目1

    软工实践第三次作业-结对项目1 简要目录: Step1 · 结对信息     成员信息     项目简介 Step2 · 项目信息     设计说明     原型模型 Step3 · 结对过程     ...

  7. Android 持续集成实践(三)——编写 .gitlab-ci.yml 实现自动化

    文章目录 前言 系列文章 Android 持续集成实践(三)--编写 .gitlab-ci.yml 实现自动化 要实现的效果 定义 gitlab-ci 工作场景阶段 定义 build 任务 定义 re ...

  8. 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇

    本文由百度技术团队"蔡锐"原创发表于"百度App技术"公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. ...

  9. AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(三) ImageNet分类 您可以使用Darknet为1000级ImageNet挑战赛分类图像.如果你还没有安装Darknet,你应该 ...

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

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

最新文章

  1. Docker安全之用户资源隔离
  2. 《Flowable基础二 Flowable是什么》
  3. linux下程序如何实现单实例运行
  4. controller如何保证当前只有一个线程执行_聊聊Spring线程安全,读完之后,大部分程序员收藏了......
  5. stm32使用stlink烧录后jlik烧不进去_【MCU实战经验】+用stm32单片机做J-Link和ST-Link...
  6. Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]
  7. unity3 学习localPosition, Position区别,itween插件,计算距离
  8. Opencv Camshift对象跟踪
  9. 基于java的在校大学生贷款管理系统
  10. Unity下载安装和Android打包成APK
  11. privilege instruction error
  12. 手把手教你做一个网页
  13. 北京超级云计算中心操作训练指南
  14. 數據驅動的到底是什麼
  15. 深度学习-聊天机器人
  16. 那些你觉得堪称神兵利器的 Chrome 插件
  17. iw在java中什么意思,请问程序里piw和iw有什么区别
  18. python多路分支_用于多个参数的python multiprocessing pool.map
  19. python怎么将字符串逆序_python中如何把一个字符串顺序逆序反转的几种方法?
  20. 神经网络处理器设计原理,神经网络控制系统设计

热门文章

  1. Vue单页面与多页面的区别
  2. iOS9 未受信任的企业级开发者
  3. linux 安装minio并设置开机自启动
  4. 无法完成windows正版认证
  5. npm学习(十七)之node_modules中的bin文件夹
  6. 2008 r2 server sql 中文版补丁_sql server 2008 r2 sp4下载-SQL Server 2008 sp4补丁3264位 简体中文完整版-东坡下载...
  7. ASP.NET+Sql Server 2008 +highchart控件从数据库中获取数据生成饼状图柱状图
  8. 三维点云语义分割基础知识
  9. 手把手教你搭建织女星开发板RISC-V开发环境
  10. 一阶逻辑形式推理系统