GTest使用方法和源码解析
breaksoftware
这个作者很懒,什么都没留下…
展开
-
Google Test(GTest)使用方法和源码解析——概况
GTest是很多开源工程的测试框架。虽然介绍它的博文非常多,但是我觉得可以深入到源码层来解析它的实现原理以及使用方法。这样我们不仅可以在开源工程中学习到实用知识,还能学习到一些思想和技巧。我觉得有时候思想和技巧是更重要的。(转载请指明出于breaksoftware的csdn博客) 我们即将要分析的是GTest1.7版本。我们可以通过https://github.c...原创 2016-04-07 23:53:23 · 19353 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用
写C++难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的一个一个特化类型后再进行测试。其实GTest提供了两种测试模板类的方法,本文我们将介绍方法的使用,并分析其实现原理。(转载请指明出于breaksoftware的csdn博客)应用 GTest将这两种方法叫做:Typed Tests和Type-Parameterized...原创 2016-04-08 00:03:24 · 9412 阅读 · 4 评论 -
Google Test(GTest)使用方法和源码解析——参数自动填充技术分析和应用
在我们设计测试用例时,我们需要考虑很多场景。每个场景都可能要细致地考虑到到各个参数的选择。比如我们希望使用函数IsPrime检测10000以内字的数字,难道我们要写一万行代码么?(转载请指明出于breaksoftware的csdn博客)EXPECT_TRUE(IsPrime(0));EXPECT_TRUE(IsPrime(1));EXPECT_TRUE(IsPrime(2...原创 2016-04-08 00:02:28 · 8753 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——私有属性代码测试技术分析
有些时候,我们不仅要测试类暴露出来的公有方法,还要测试其受保护的或者私有方法。GTest测试框架提供了一种方法,让我们可以测试类的私有方法。但是这是一种侵入式的,会破坏原来代码的结构,所以我觉得还是谨慎使用。(转载请指明出于breaksoftware的csdn博客) 我们先看个例子// This class has a private member we w...原创 2016-04-07 23:58:03 · 4524 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——自定义输出技术的分析和应用
在介绍自定义输出机制之前,我们先了解下AssertResult类型函数。(转载请指明出于breaksoftware的csdn博客)在函数中使用AssertionResult AssertionResult只有两种类型:AssertionSuccess() AssertionFailure() 要么成功,要么失败,我们就可以使用基础断言来判...原创 2016-04-07 23:57:35 · 4751 阅读 · 1 评论 -
Google Test(GTest)使用方法和源码解析——预处理技术分析和应用
预处理 在《Google Test(GTest)使用方法和源码解析——概况》最后一部分,我们介绍了GTest的预处理特性。现在我们就详细介绍该特性的使用和相关源码。(转载请指明出于breaksoftware的csdn博客)测试特例级别预处理 Test Fixtures是建立一个固定/已知的环境状态以确保测试可重复并且按照预期方式运行的装置。通过它,我们可以实...原创 2016-04-07 23:56:47 · 2680 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——断言的使用方法和解析
在之前博文的基础上,我们将介绍部分断言的使用,同时穿插一些源码。(转载请指明出于breaksoftware的csdn博客)断言(Assertions) 断言是GTest局部测试中最简单的使用方法,我们之前博文中举得例子都是使用断言去做判断的。基础断言 我们先看一个基础的断言Fatal assertion Nonfatal ass...原创 2016-04-07 23:55:52 · 22137 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——Listener技术分析和应用
在《Google Test(GTest)使用方法和源码解析——结果统计机制分析》文中,我么分析了GTest如何对测试结果进行统计的。本文我们将解析其结果输出所使用到的Listener机制。(转载请指明出于breaksoftware的csdn博客)解析 源码中,我们经常要和UnitTest类打交道。它提供了一个单例方法返回自己的一个对象,然后各处代码都在调用这个单...原创 2016-04-07 23:55:14 · 4479 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——结果统计机制分析
在分析源码之前,我们先看一个例子。以《Google Test(GTest)使用方法和源码解析——概况 》一文中最后一个实例代码为基准,修改最后一个“局部测试”结果为错误。(转载请指明出于breaksoftware的csdn博客)class ListTest : public testing::Test { protected: virtual void SetUp() ...原创 2016-04-07 23:54:39 · 6154 阅读 · 0 评论 -
Google Test(GTest)使用方法和源码解析——自动调度机制分析
在《Google Test(GTest)使用方法和源码解析——概况》一文中,我们简单介绍了下GTest的使用和特性。从这篇博文开始,我们将深入代码,研究这些特性的实现。(转载请指明出于breaksoftware的csdn博客)测试用例的自动保存 当使用一组宏构成测试代码后,我们并没有发现调用它们的地方。GTest框架实际上是通过这些宏,将我们的逻辑保存到类中,...原创 2016-04-07 23:53:59 · 8768 阅读 · 16 评论 -
Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用
死亡测试是为了判断一段逻辑是否会导致进程退出而设计的。这种场景并不常见,但是GTest依然为我们设计了这个功能。我们先看下其应用实例。(转载请指明出于breaksoftware的csdn博客)死亡测试技术应用 我们可以使用TEST声明并注册一个简单的测试特例。其实现内部才是死亡测试相关代码运行的地方。GTest为我们提供了如下的宏用于组织测试逻辑Fatal...原创 2016-04-08 00:04:27 · 9166 阅读 · 4 评论