ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gtest使用

2021-11-23 21:01:23  阅读:202  来源: 互联网

标签:函数 单元测试 gtest 测试用例 事件 测试 使用 TEST


  1. 作用

    1. 作为代码编码人员,写完代码,不仅要保证编译通过和运行,还要保证逻辑尽量正确。单元测试是对软件可测试最小单元的检查和校验。单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码。测试部门可以作一定程度的审核。(来自百度百科
    2. 其作用可以归为四种:

      1. 验证:验证程序逻辑的正确性,即使后期升级,通过跑单元测试,也可以看到升级后是否会对旧逻辑有影响
      2. 设计:促使程序员写出可单独测试的代码,从而更容易解耦
      3. 文档:作为程序使用的sample
      4. 回归:应对程序升级,也可以集成到code review之前的编译,自动做回归,典型用法就是在DevOps的编译打包阶段,例如jeckins编译完成后,自动触发单元测试。
      5. gtest是google提供的一套针对C++的单元测试框架,本文主要阐述其原理和使用方法。
  2. 原理

    1. gtest主要由一系列的宏和事件实现。
      1. 宏:有TEST和TEST_F宏,TEST宏针对简单的单测,TEST_F宏针对需要做初始化和资源回收的单测,有点像类的构造函数和析构函数,两个宏都是把参数展开后拼成一个类。
      2. 事件:分为三种事件
        1.   
        2.  测试程序:一个进程,全局事件在该层

        3. 测试套件:一系列测试用例的集合,SetUpTestCase事件在该层(注意,网上很多地方大部分写的是SetUpTestSuite,应该是老版本)

        4. 测试用例:一个测试用例的事件体现在每个用例前后的SetUp和TearDown

        5. 每个事件可用于下级时间的数据共享以及测试前后的数据处理
  3. 使用

    1. 全局事件:需要创建一个自己的类,然后继承testing::Environment类,然后分别实现成员函数SetUp()和TearDown(),同时在main函数内进行调用,即"testing::AddGlobalTestEnvironment(new MyEnvironment);",通过调用函数我们可以添加多个全局的事件机制。
    2. 套件事件:继承testing::Test,实现两个静态函数SetUpTestCase()和TearDownTestCase(),测试套件的事件机制不需要像全局事件机制一样在main注册,而是需要将我们平时使用的TEST宏改为TEST_F宏
    3. 用例事件:测试用例的事件机制的创建和测试套件的基本一样,不同地方在于测试用例实现的两个函数分别是SetUp()和TearDown(),这两个函数不是静态函数了。SetUp()函数是在一个测试用例的开始前执行。TearDown()函数是在一个测试用例的结束后执行。
  4. 代码

    1. https://github.com/longbozhan/sample/tree/master/gtest
  5. 参考

    1. https://www.shuzhiduo.com/A/n2d9gnDgJD/

标签:函数,单元测试,gtest,测试用例,事件,测试,使用,TEST
来源: https://www.cnblogs.com/mixerzhan/p/15594573.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有