C++ 全栈知识体系C++ 全栈知识体系
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
  • 开发

    • 常用开发库

      • 常用开发库 - 概述
      • 常用开发库 - Cppcheck
      • 常用开发库 - Cppunit
      • 常用开发库 - Drogon
      • 常用开发库 - FastCGI
      • 常用开发库 - Googletest
      • 常用开发库 - Hiredis
      • 常用开发库 - Jsoncpp
      • 常用开发库 - Log4cpp
      • 常用开发库 - Poco
      • 常用开发库 - Protobuf
      • 常用开发库 - Tinyxml
      • 常用开发库 - Yamlcpp
      • 常用开发库 - ZeroMQ
  • 测试

    • 测试理论

      • 测试理论 - 软件测试的发展
      • 测试理论 - 软件开发过程模型
      • 测试理论 - 测试模型
      • 测试理论 - 软件测试分类
      • 测试理论 - 基本原则及流程
    • 测试用例

      • 测试用例 - 概念
      • 测试用例 - 等价类划分法
      • 测试用例 - 边界值测试法
      • 测试用例 - 判定表法
      • 测试用例 - 因果图法
      • 测试用例 - 正交法
      • 测试用例 - 场景法
      • 测试用例 - 功能图法
    • 测试工具

      • 测试工具 - Postman使用
      • 测试工具 - RobotFramework使用

常用开发库 - CppUnit

参考文章

  • HowToUseCppUnit
  • CppUnit快速入门
  • cppunit使用详解

概述

CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就是对单元测试进行管理,并可进行自动化测试。

单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

核心内容

CppUnit核心内容主要包括六个方面,

  1. 测试对象(Test,TestFixture,TestSuite,...):用于开发测试用例,以及对测试用例进行组织管理。

    • TestCase:测试用例。通过继承它来实现测试用例。
    • TestFixture:测试固件。用来建立测试基准或构建测试用例的先决条件。
    • TestSuite:测试套具。用来整合测试用例。
  2. 测试结果(TestResult):处理测试用例执行结果。TestResult与下面的TestListener采用的是观察者模式。

  3. 测试结果监听者(TestListener):TestListener作为TestResult的观察者,担任实际的结果处理角色。

  4. 结果输出(Outputter):将结果进行输出,可以制定不同的输出格式。

  5. 对象工厂(TestFactory):用于创建测试对象,对测试用例进行自动化管理。

  6. 测试执行体(TestRunner):用于运行一个测试。

以上各模块的主要类继承结构如下:

         Test              TestFixture      TestResult          TestListener     
        _______|_________            |                                    |          
        |               |            |                           TestSuccessListener
    TestComposite   TestLeaf         |                                    |          
        |               |____________|                           TestResultCollector          
    TestSuit                  |
                           TestCase                     
                              |
                      TestCaller<Fixture>
                      
                        Outputter                                    TestFactory                    TestRunner
        ____________________|_________________                            |
        |                   |                |                   TestFactoryRegistry
    CompilerOutputter  TextOutputter    XmlOutputter                      |
                                                             TestSuiteFactory<TestCaseType>

编译

cd /home/tools/cppunit/
tar  -zxf cppunit-1.12.1.tar.gz
cd ./cppunit-1.12.1/
./configure
make
make install

examples下的demo使用

路径: build_lib\examples\examples\3partlib\cppunit

[root@5d4b980baaa2 build]# cd /home/stibel/examples/deploy/3partlib/
[root@5d4b980baaa2 3partlib]# ./cppunit/SimpleTest
.F.


!!!FAILURES!!!
Test Results:
Run:  2   Failures: 1   Errors: 0


1) test: testString (F) line: 13 /home/stibel/examples/examples/3partlib/cppunit/source/SimpleTest.cpp
equality assertion failed
- Expected: hello
- Actual  : world


<RETURN> to continue
Last Updated:
Contributors: klc407073648
Prev
常用开发库 - Cppcheck
Next
常用开发库 - Drogon