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 ...
随机推荐
- 『PyTorch』第五弹_深入理解Tensor对象_中下:数学计算以及numpy比较_&_广播原理简介
一.简单数学操作 1.逐元素操作 t.clamp(a,min=2,max=4)近似于tf.clip_by_value(A, min, max),修剪值域. a = t.arange(0,6).view ...
- 微信支付---H5支付
这里说的H5支付是指在微信外的浏览器打开H5商家的支付,切勿与公众号微信内支付混淆, 1.H5支付的开通流程 登陆微信商户平台页面:https://pay.weixin.qq.com/wiki/doc ...
- Win10系列:C#应用控件基础12
TextBlock控件 TextBlock控件是应用程序开发过程中经常使用的控件之一,它的主要功能是显示一段只读的文本内容.开发者可以使用TextBlock控件来显示提示信息,还可以根据需求将显示的提 ...
- linux c使用socket进行http 通信,并接收任意大小的http响应(二)
先贴请求头部信息组织代码. 有同学会疑问http_url.h是干什么用的,我要在这里声明,http_url.h并不是给http_url.c用的,实际上http_url.h声明了http_url.c已经 ...
- python之路---面向对象编程(二)
类的继承 1.在python3中,只有新式类,新式类的继承方式为:广度优先.而python2中,经典类的继承方式为:深度优先.那么我们来看看深度优先和广度优先的区别吧 如下图,为类之间的继承关系.B, ...
- 两小时内sql
select convert(datetime,convert(char(20),dateadd(hour,-2,getdate())))
- [SCOI2005]繁忙的都市
emm...就是个最小生成树板子...我还能说啥... 为啥我早出生个十多年.../(ㄒoㄒ)/~~ 五六年也好啊.../(ㄒoㄒ)/~~ 呆码: #include<iostream> # ...
- go语言常见问题总结
go语言中的goroutine和其它语言中的coroutine有什么相同和不同? coroutine 意味着支持将控制转移到另一个协程的明确手段.也就是说,程序员在确定coroutine何时应该暂停执 ...
- 重构 改善既有代码的设计 Replace Method with Method Object(以函数对象取代函数)
你有一个大型函数,其中对局部变量的使用使你无法采用Extract Method. 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的字段.然后你可以在同一个对象中将这个大型函数分解为多个小型 ...
- springcloud学习总结
最近花了一周的时间对springcloud的常用组件进行了一些入门级的了解,也破天荒的积极起来用博客进行了学习的记录,只是希望以后用的时候能对自己有所帮助,也希望给跟我一样对springcloud毫无 ...