测试夹具:对多个测试使用相同的数据配置

如果您发现自己编写了两个或多个对相似数据进行操作的测试,您可以使用测试夹具。这允许您为多个不同的测试重用相同的对象配置。要创建夹具:从 派生一个类::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入门介绍(二)相关推荐

  1. Gtest入门介绍(一)

    Gtest入门介绍 简单使用: //test functionint getdata(int n,int m){return n+m;}TEST(getdata, demon){EXPECT_EQ(1 ...

  2. 《C#零基础入门之百识百例》(五十二)封装介绍 -- 二维多项式求值

    C#零基础入门 面向对象 -- 封装介绍 -- 二维多项式求值 前言 一,封装概念 二,封装属性 三,实例练习 -- 二维多项式求值 3.1 题目描述 3.2 问题分析 3.3 参考代码 前言 本文属 ...

  3. .NET读写Excel工具Spire.Xls使用(1)入门介绍

    原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...

  4. 独家 | 集成学习入门介绍

    作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个体.在机器 ...

  5. SpringBoot入门(二)——起步依赖

    本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...

  6. ECC加密算法入门介绍

    作者  : ZMWorm[CCG]   E-Mail: zmworm@sohu.com   主页  : Http://ZMWorm.Yeah.Net/ 前言 同RSA(Ron Rivest,Adi S ...

  7. 互联网协议入门(二)【转】

    原文地址:点击前往 上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想. 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的. ======== ...

  8. 机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程

    机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程) 目录(?)[+] 一多变量的线性回归 二批处理 三特征缩放 四正规方程 五多变量非线性回归 一.多变量的线性回归 在#机 ...

  9. 互联网协议入门(二)

    上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想. 这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的. ================== ...

最新文章

  1. stm32定时器中断_stm32F4之定时器的基本使用
  2. 若依微服务版新建业务模块后提示找不到mapper的解决方法
  3. 【Python】Jupyter Notebook这款「骚气满满」的小工具,简直太爱了!
  4. 安卓入门系列-09一个实战小项目(备忘录Memo)
  5. Kafka的Spring Cloud Stream
  6. 28 FI配置-财务会计-外币评估-检查分配到分类账组的会计核算原则
  7. 只想在老家找份工作很难吗_当您只想完成工作时,为什么公开工作会很困难
  8. 【英语学习】【WOTD】pungle 释义/词源/示例
  9. python开发自动化创建一个任务下发到手机_python自动化开发问题集
  10. python爬取新浪博客_Python爬取韩寒所有新浪博客
  11. Linux内核安全模块学习-导言
  12. 独立开发一款简单的安卓app
  13. java自学-常见的API(String、ArryList)
  14. vue3组件库-mycom3-vue 组件文档
  15. 错误代码1500什么意思_ADSL的一些错误代码是什么意思?
  16. java的可执行文件_java生成可执行文件的方法总结
  17. 苹果电脑Android我的电脑,苹果电脑连接安卓手机怎么在电脑上找到手机文件?...
  18. 「GoCN酷Go推荐」​QQ机器人 go-cqhttp
  19. java 计算某个时间段在多个时间段中分别用时
  20. debian内核防毒AntiVir安装(转)

热门文章

  1. Python 初步了解科学计算和数据分析
  2. Linux中tar命令的使用,linux 下tar命令详解
  3. 如何申请公司邓白氏编码(D-U-N-S Number)
  4. 16通道24位分辨率x8 PCIE 3U PXIE采集卡
  5. 中国印刷业目前发展的四大主要特点
  6. DTC设置(85服务)
  7. arm手机刷linux,arm-从0开始刷机(linux下)
  8. paxos协议的理解及证明推导
  9. 浅谈ECMAScript 6下的promises API
  10. 新站如何推广 新站推广的基础方法