`
jeast
  • 浏览: 71658 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

C++单元测试框架

 
阅读更多

GTest 是Google公司发布的一个开源C/C++单元测试框架,已被应用于多个开源项目及Google内部项目中,知名的例子包括Chrome Web浏览器、LLVM编译器架构、Protocol Buffers数据交换格式及工具等。

优秀的C/C++单元测试框架并不算少,相比之下gtest仍具有明显优势。与CppUnit比,gtest需要使用的头文件和函数宏更集中,并支持测试用例的自动注册。与CxxUnit比,gtest不要求Python等外部工具的存在。与Boost.Test比,gtest更简洁容易上手,实用性也并不逊色。

 

CppUTest 是一个功能全面的测试框架,是为了支持在多种操作系统上开发嵌入式软件而特别设计的。CppUTest的宏被设计成不需要了解C++也可以写测试用例。这使得C程序员更容易用这个测试框架。

CppUTest只使用C++语言中主要的那部分子集,这种选择很好地适应了那些编译器不能完全支持全部C++语言特性的嵌入式开发。你会看到用Unity和CppUTest写出的单元测试几乎一模一样。你当然可以选择任意一个测试框架来进行你的产品开发。

 

 

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

测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通 过,然后再优化设计结构。测试驱动开发式是极限编程的重要组成部分。XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发 提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,PythonUnit等。CppUnit 即是XUnit家族中的一员,它是一个专门面向C++的测试框架。

 

CppTest 是 C++ 的单元测试框架。比CppUnit 简单,但是又不失其灵活性。CppTest 能够协助 C/C++ 开发人员执行代码测试,从而降低维护难度。与CppUnit一样,都提供了装备、用于断言的宏和输出格式化器等。但两者又有许多不同之处,下面对它们做一个简单比对:

 

·     创建单元测试和测试套件的简便性。CppUnit  CppTest 都创建类方法形式的单元测试,类本身都派生自工具提供的 Test类。但是,CppTest 的语法略微简单些,测试的注册在类构造器内进行。对于 CppUnit,需要额外的宏 CPPUNIT_TEST_SUITE CPPUNIT_TEST_SUITE_ENDS

·     运行测试。CppTest 直接调用测试套件上的 run 方法,而 CppUnit 使用单独的 TestRunner 类,通过调用这个类的 run 方法运行测试。

·     扩展测试层次结构。对于 CppTest,随时可以从以前的测试套件派生新类,从而扩展测试套件。新的类定义一些新函数,这些函数成为新的单元测试。只需在新类类型的对象上调用 run 方法。与之相反,CppUnit 需要使用 CPPUNIT_TEST_SUB_SUITE宏和类继承来实现相同的效果。

·     生成格式化的输出。CppTest  CppUnit 都允许定制输出。但是,CppTest 有预定义的 HTML 输出格式化器,而 CppUnit 没有。但是,只有 CppUnit 支持 XML 格式化。它们都支持文本和编译器式格式。

·     创建测试装备。要想使用测试装备,CppUnit 要求测试类派生自 CppUnit::TestFixture。您必须提供设置和退出例程的定义。对于 CppTest,只需提供设置和退出例程的定义。这个解决方案显然更好,因为这让客户机代码更简单。

·     预定义的宏支持。CppTest  CppUnit 都提供一组用于断言、处理浮点等的宏。

·     头文件。 CppTest 只要求包含一个头文件,而 CppUnit 客户机代码必须根据使用的特性包含多个头文件,比如 HelperMacros.h TextTestRunner.h

 

分享到:
评论

相关推荐

    玩转Google开源C++单元测试框架Google Test系列.pdf

    Google Test(gtest)是由Google提供的一个C++单元测试框架,广泛应用于C++程序的测试中。本系列文档将详细介绍如何使用gtest,包括其下载、安装、配置以及编写测试案例。文档分为多个部分,涵盖了gtest的基本使用...

    开源C++单元测试框架整理

    ### 开源C++单元测试框架整理 #### 一、概览与基础知识 本文主要围绕`GoogleTest`(简称`gtest`)这一强大的开源C++单元测试框架展开,旨在帮助读者理解如何利用`gtest`来进行有效的单元测试。`gtest`是由Google...

    Google的开源C++单元测试框架Google Test使用教程

    前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好...

    C++单元测试三大框架的比较

    C++单元测试三大框架的比较软件测试1、TUT结构框架简单。添加新的测试工作量小;无须注册测试;可移植性好(因其只需两个头文件,就可以完成测试工作);便于装卸;提供接口可以扩展其输出方式等。最大的优点:轻量级,...

    超好用C++单元测试框架(windows+linux)源码

    C++单元测试框架是软件开发过程中非常重要的工具,它允许开发者编写针对代码模块的独立测试,确保代码功能的正确性。在Windows和Linux这两种操作系统环境下,有多种C++的单元测试框架可以选择,如Google Test(gtest...

    Google开源C++单元测试框架Google Test教程 第1章

    Google开源C++单元测试框架Google Test教程 第1章 Google开源C++单元测试框架Google Test教程 第1章 【资源说明】 1、该资源介绍Google开源C++单元测试框架Google Test教程 第一章。 2、第一章的主要内容为:GTest...

    玩转Google开源C++单元测试框架Google Test系列 gtest

    玩转Google开源C++单元测试框架Google Test系列 gtest

    玩转Google开源C++单元测试框架Google_Test.pdf

    - **框架背景**:Google Test 是由 Google 开发并维护的一款强大的 C++ 单元测试框架,广泛应用于 C++ 开发项目中进行代码质量控制和功能验证。 - **主要特性**:提供了丰富的断言库、支持事件监听机制、参数化测试...

    玩转Google开源C++单元测试框架GoogleTest.pdf

    玩转Google开源C++单元测试框架GoogleTest

    C++单元测试框架程序(已经本人修正)和使用文档

    C++单元测试框架是软件开发过程中不可或缺的一部分,它允许开发者对代码的各个模块进行独立验证,确保它们在预期情况下能够正确工作。Google Test,通常简称为gtest,是Google推出的一个强大的开源C++测试框架,旨在...

    玩转Google开源C++单元测试框架Google Test系列1

    《玩转Google开源C++单元测试框架Google Test系列1》 单元测试是软件开发过程中的重要环节,它能确保代码的正确性和稳定性。Google Test(gtest)是一个强大的、开源的C++测试框架,旨在简化和优化C++代码的单元...

    玩转Google开源C++单元测试框架Google_Test

    ### 玩转Google开源C++单元测试框架Google_Test #### 概述 本文旨在详细介绍如何使用Google开源的C++单元测试框架——Google Test(通常简称为GTest)。通过本教程,读者能够学会如何下载、安装、配置并利用GTest...

    玩转Google开源C++单元测试框架Google Test系列(gtest)(总) - CoderZh - 博客园1

    【玩转Google开源C++单元测试框架Google Test系列(gtest)(总)】 Google Test,简称为gtest,是一款功能强大、易于使用的开源C++单元测试框架。由Google开发并维护,它提供了一整套用于编写和运行C++代码测试的工具...

    C++单元测试框架,只需一个头文件

    C++单元测试框架,只需一个头文件。 Catch v1.12.2

    cppunit C++单元测试框架 源码+Demo+使用手册

    XUnit,一个基于测试驱动开发的测试框架,它为我们在开发过程中使用测试驱动开发提供了一个方便的工具,使我们得以快速的进行单元测试。XUnit的成员有很多,如JUnit,PythonUnit等。今天给大家介绍的CppUnit即是...

    基于C++的Google Test单元测试框架设计源码

    本项目是基于C++的Google Test单元测试框架设计源码,...Google Test,简称gtest,是一个由Google开源的C++单元测试框架,它提供了一个强大的测试套件,可以帮助开发者快速构建和运行测试,确保代码的质量和稳定性。

    CC++单元测试框架gtest初探.docx

    gtest 是 Google 开源的 C++ 单元测试框架,提供了一个灵活、可靠、可扩展的测试解决方案。本文将介绍 gtest 的基本使用,包括下载、安装、编译、建立第一个测试 Demo 工程,以及编写一个最简单的测试案例。 下载和...

Global site tag (gtag.js) - Google Analytics