googletest--Death Test和Exception Test
Death Test验证某个状态会使进程以某个错误码和错误消息离开
#include <gtest\gtest.h>
#include "MyStack.h" // Death Test: 验证某个状态会使进程以某个错误码和错误消息离开
void function1() {
std::cerr << "Bad thing happened";
std::exit(); // exit(0) 不算death
}
void function2() {
std::cerr << "Bad thing happend again.";
std::exit();
}
TEST(tutorial_DeathTest, simpletest) { // 转换:testcase名字需要以DeathTest结尾
// 因为DeathTests往往需要在其他test之前允许
int x = ;
// death的原因:
// 1. 进程以非0值离开
// 2. 进程被一个信号杀死
EXPECT_DEATH(function1(), "Bad thing happened"); //正则表达式
EXPECT_EXIT(function2(), ::testing::ExitedWithCode(), ""); // "" 表示不关心错误消息
//EXPECT_EXIT(function2(), ::testing::KilledBySignal(SIGKILL), ".*"); // Windows上没有
EXPECT_THROW(st.pop(), std:out_of_range); // 预期st.pop()抛一个std:out_of_range异常.
EXPECT_ANY_THROW(st.pop()); // 预期st.pop()抛一个任意类型的异常
EXPECT_NO_THROW(st.pop()); // 预期st.pop()不跑异常
switch () {
case -1: FAIL() << "Size can not be negative"; // 报告测试失败
}
googletest--Death Test和Exception Test的更多相关文章
- C# to IL 10 Exception Handling(异常处理)
Exception handling in IL is a big let down. We expected a significant amount of complexity,but were ...
- 使用googletest进行C++单元测试(Netbeans为例)
googletest设置步骤(Netbeans为例) 下载googletest [https://github.com/google/googletest],解压到<gtest_dir> ...
- GoogleTest初探(1)
此篇主要了解一下GoogleTest中的断言. 总的来说,GoogleTest中的断言分为两大类:EXPECT_*和ASSERT_*,这两者在测试成功或失败后均会给出测试报告,区别是前者在测试失败后会 ...
- GoogleTest 之路2-Googletest 入门(Primer)
Why googletest? 为啥要用GoogleTest呢? googletest 是由测试技术Team 开发的带有google 特殊的需求和限制的测试框架. 不管你在什么平台上写C++代码,go ...
- MCE----Machine-check exception
http://en.wikipedia.org/wiki/Machine_Check_Exception Machine-check exception From Wikipedia, the fre ...
- Googletest Primer
Googletest Primer 原文地址:https://github.com/google/googletest/blob/master/googletest/docs/primer.md In ...
- [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?
你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...
- 浅谈java异常[Exception]
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" ...
- Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
在学习CGlib动态代理时,遇到如下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.objectwe ...
随机推荐
- nginx upstream的五种分配方式
Nginx负载均衡选项upstream用法举例 1.轮询(weight=1) 默认选项,当weight不指定时,各服务器weight相同,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器d ...
- PAMIE模块安装
PAMIE2.0适用于python2.0.x,PAMIE3.0适用于python3.0.x. 这里记录安装PAMIE2.0方法: 一.安装PAMIE2.0 1.下载PAMIE20压缩包:https:/ ...
- 使用python来访问Hadoop HDFS存储实现文件的操作
原文:http://rfyiamcool.blog.51cto.com/1030776/1258292 在调试环境下,咱们用hadoop提供的shell接口测试增加删除查看,但是不利于复杂的逻辑编程 ...
- 禁用cookie后的方法
保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给 服务器.一般这个cookie的名字都是类似于SEEESIONID.但cookie可以被人为 ...
- zabbix3.4.7利用Windows性能监视器监控各项资源指标
zabbix自带的windows监控模板并没有监控windows cpu使用率的监控 在cmd命令的窗口输入perfmon,就会弹出一下界面 点击性能监视器 点击如图加号,出现很多参数 选择proce ...
- linux软件管理 YUM命令
yum的优点 将所有软件包放到官方服务器上,当进行yum在线安装时可以自动解决依赖性问题 yum源文件 [root@ssgao1987 yum.repos.d]# cd /etc/yum.repos. ...
- angualrjs 文本框去掉表情
html: <textarea ng-module="dataText"></textarea> js: <script> var BQ_RAN ...
- linux c使用socket进行http 通信,并接收任意大小的http响应(五)
http.c data2.c http_url.c http.h data2.h http_url.h主要实现的功能是通过URL结构体来实现HTTP通信,你可以把这三个文件独立出来,作为HTTP通信模 ...
- ORA-12638: 身份证明检索失败的解决方法
本地oracle客户端用PLSQL Developer连接远程数据库,每次登录都会在很久之后,出现 ORA-12638: 身份证明检索失败,tnsping 表明TNS配置没有问题. 解决方案: D:\ ...
- constructor&object 的对比
Constructor vs object A constructor is a special member function in the class to allocate memory to ...