Gtest入门介绍(二)
测试夹具:对多个测试使用相同的数据配置
如果您发现自己编写了两个或多个对相似数据进行操作的测试,您可以使用测试夹具。这允许您为多个不同的测试重用相同的对象配置。要创建夹具:从 派生一个类::testing::Test。以 开始它的主体protected:,因为我们希望从子类中访问夹具成员。在类中,声明您计划使用的任何对象。如有必要,编写一个默认构造函数或SetUp()函数来为每个测试准备对象。一个常见的错误是拼写SetUp()为 Setup()small u-override在 C++11 中使用以确保拼写正确。如有必要,编写析构函数或TearDown()函数来释放您在SetUp(). 要了解何时应该使用构造函数/析构函数以及何时应该使用SetUp()/TearDown(),请阅读常见问题解答。如果需要,定义子程序供您的测试共享。使用夹具时,请使用TEST_F()而不是,TEST()因为它允许您访问测试夹具中的对象和子例程:TEST_F(TestFixtureName, TestName)
{... test body ...
}
像 一样TEST(),第一个参数是测试套件名称,但TEST_F() 它必须是测试夹具类的名称。你可能已经猜到了:_F 是用于夹具的。
代码案例:
class MyClass{public:MyClass(int data):basevalue(data){}void add(int data){basevalue +=data;}int getdata() { return basevalue;}private:int basevalue;};class MyTest : public ::testing::Test{public:MyClass *my;void SetUp(){my = new MyClass(100);}void TearDown(){delete my;}};TEST_F(MyTest,test1){my->add(10);EXPECT_EQ(my->getdata(),110);}TEST_F(MyTest,test2){my->add(100);EXPECT_EQ(my->getdata(),200);}
Gtest入门介绍(二)相关推荐
- Gtest入门介绍(一)
Gtest入门介绍 简单使用: //test functionint getdata(int n,int m){return n+m;}TEST(getdata, demon){EXPECT_EQ(1 ...
- 《C#零基础入门之百识百例》(五十二)封装介绍 -- 二维多项式求值
C#零基础入门 面向对象 -- 封装介绍 -- 二维多项式求值 前言 一,封装概念 二,封装属性 三,实例练习 -- 二维多项式求值 3.1 题目描述 3.2 问题分析 3.3 参考代码 前言 本文属 ...
- .NET读写Excel工具Spire.Xls使用(1)入门介绍
原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...
- 独家 | 集成学习入门介绍
作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个体.在机器 ...
- SpringBoot入门(二)——起步依赖
本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...
- ECC加密算法入门介绍
作者 : ZMWorm[CCG] E-Mail: zmworm@sohu.com 主页 : Http://ZMWorm.Yeah.Net/ 前言 同RSA(Ron Rivest,Adi S ...
- 互联网协议入门(二)【转】
原文地址:点击前往 上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想. 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的. ======== ...
- 机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程
机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程) 目录(?)[+] 一多变量的线性回归 二批处理 三特征缩放 四正规方程 五多变量非线性回归 一.多变量的线性回归 在#机 ...
- 互联网协议入门(二)
上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想. 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的. ================== ...
最新文章
- stm32定时器中断_stm32F4之定时器的基本使用
- 若依微服务版新建业务模块后提示找不到mapper的解决方法
- 【Python】Jupyter Notebook这款「骚气满满」的小工具,简直太爱了!
- 安卓入门系列-09一个实战小项目(备忘录Memo)
- Kafka的Spring Cloud Stream
- 28 FI配置-财务会计-外币评估-检查分配到分类账组的会计核算原则
- 只想在老家找份工作很难吗_当您只想完成工作时,为什么公开工作会很困难
- 【英语学习】【WOTD】pungle 释义/词源/示例
- python开发自动化创建一个任务下发到手机_python自动化开发问题集
- python爬取新浪博客_Python爬取韩寒所有新浪博客
- Linux内核安全模块学习-导言
- 独立开发一款简单的安卓app
- java自学-常见的API(String、ArryList)
- vue3组件库-mycom3-vue 组件文档
- 错误代码1500什么意思_ADSL的一些错误代码是什么意思?
- java的可执行文件_java生成可执行文件的方法总结
- 苹果电脑Android我的电脑,苹果电脑连接安卓手机怎么在电脑上找到手机文件?...
- 「GoCN酷Go推荐」​QQ机器人 go-cqhttp
- java 计算某个时间段在多个时间段中分别用时
- debian内核防毒AntiVir安装(转)