开源项目推荐:C++单元测试框架googletest/Catch2/QtTest
单元测试,一直用的是googletest,使用时只需要下载源码编译出库,在测试工程中引用即可,googletest提供了很多宏来让我们很轻松的组织测试用例。而Catch2比googletest使用更简单,源码就一个头文件,使用时只需要将Catch2.hpp引用到工程中即可,基本的测试用例组织方法与googletest相似;对于测试工具,个人认为Catch提供的TEST_CASE+SECTION更....
玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原因是....
玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
一、前言 本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例。 二、下载 如果不记得网址, 直接在google里搜gtest,第一个就是。目前gtest的最新版本为1.3.0,从下列地址可以下载到该最新版本: http://googletest.googlecode.com/files/gtest-1.3.0.zip ...

玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言
一、前言 这篇文章主要总结gtest中的所有断言相关的宏。 gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是: 1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。 二、示例 Code highlighting prod...

玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化
一、前言 在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法,然后编写在测试案例调用它。即使使用了通用方法,这样的工作也是有很多重复性的,程序员都懒,都希望能够少写代码,多复用代码。Google的程序员也一样,他们考虑到了这个问题,并且提供了一个灵活的参数化测试的方案。 二、旧的方案 为了对比,我还是把旧的方案提一下。首先我先把被测函数IsPrime帖....

玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制
一、前言 gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种: 1. 全局的,所有案例执行前后。 2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。 3. TestCase级别的,每个TestCase前后。 二、全局事件 要实现全局事件,必须写一个类,继承testing::Environment类,实现里面的Se....

玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数
、前言 使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。 二、基本介绍 前面提到,对于运行参数,gtest提供了三种设置的途径: 1. 系统环境变量 2. 命令行参数 3. 代码中指定FLAG 因为提供了三种途径,就会有优先级的问题, 有一....

玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
一、前言 上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂。本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest。 二、整体设计 使用最精简的设计,我们就用两个类,够简单吧: 1. TestCase类 包含单个测试案例的信息。 2. UnitTest类 负责所有测试案例的执行,管理。 三、TestC.....

Google C++单元测试框架之宏
一、概述 gtest中,断言的宏可以理解分为两类,一类是ASSERT系列,一类是EXPECT系列; 1、ASSERT_*系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例) 2、EXCEPT_*系列的断言,当检查点失败时,继续往下执行;
Google C++单元测试框架
一、概述 Google C++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux, Mac OS X, Windows, Cygwin和Symbian),它提供了丰富的断言、致命和非致命失败判断,能进行值参数化测试、类型参数化测试、“死亡测试”。Gtest是一个开源的项目,其源码可以从这里下载,目前的代码发行版是1.6.0。 编译 源码包中的README文件说明了如何....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
开发与运维
集结各类场景实战经验,助你开发运维畅行无忧
+关注