
GoogleTest 学习笔记
文章平均质量分 90
单元测试学习笔记
Pyrojewel_js
你不应该拘泥于任何特定的技术,而应该拥有足够广泛的背景和经验基础,以便在特定的情况下选择合适的解决方案。你的背景来自对计算机科学基本原理的理解,而你的经验来自广泛的实际项目。理论结合实践才会让你变得强大。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【单元测试】C++单元测试框架Google Test入门之一:初识Gtest
gtest是一个跨平台的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。原创 2023-02-03 11:42:27 · 1123 阅读 · 1 评论 -
【单元测试】C++单元测试框架Google Test入门之二:断言
这篇文章主要总结gtest中的所有断言相关的宏。gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。如果你对自动输出的出错信息不满意的话,你还可以通过操作符原创 2023-02-03 13:06:21 · 1380 阅读 · 0 评论 -
【单元测试】C++单元测试框架Google Test入门之三:事件机制
gtest提供的这三种事件机制还是非常的简单和灵活的。同时,通过继承Test类,使用TEST_F宏,我们可以在案例之间共享一些通用方法,共享资源。使得我们的案例更加的简洁,清晰。原创 2023-02-06 09:22:54 · 695 阅读 · 0 评论 -
【单元测试】C++单元测试框架Google Test入门之四:参数化
在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法,然后编写在测试案例调用它。即使使用了通用方法,这样的工作也是有很多重复性的,程序员都懒,都希望能够少写代码,多复用代码。Google的程序员也一样,他们考虑到了这个问题,并且提供了一个灵活的参数化测试的方案。gtest为我们提供的参数化测试的功能给我们的测试带来了极大的方便,使得我们可以写更少更优美的代码,完成多种参数类型的测试案例。原创 2023-02-06 09:43:39 · 1392 阅读 · 1 评论 -
【单元测试】C++单元测试框架Google Test入门之五:死亡测试
死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃。通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要检查程序是否按照预期的方式挂掉,这也就是所谓的“死亡测试”。gtest的死亡测试能做到在一个安全的环境下执行崩溃的测试案例,同时又对崩溃结果进行验证。关于死亡测试,gtest官方的文档已经很详细了,同时在源码中也有大量的示例。如想了解更多的请参考官方的文档,或是直接看gtest源码。简单来说,通过*_DEATH(statement, regex。原创 2023-02-06 09:56:51 · 887 阅读 · 0 评论 -
【单元测试】C++单元测试框架Google Test入门之六:运行参数
使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。前面提到,对于运行参数,gtest提供了三种设置的途径:系统环境变量命令行参数代码中指定FLAG因为提供了三种途径,就会有优先级的问题, 有一个原则是,最后设置的那个会生效。不过总结一下,通常情况下,比较理想的优先级为:命令行参数 > 代码中指定FLAG > 系统环境变量。原创 2023-02-06 10:06:02 · 1237 阅读 · 0 评论 -
【单元测试】C++单元测试框架Google Test入门之七:深入解析GTEST
深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内部实现介绍给大家。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释非常的详细!好了,下面就开始了解gtest吧。::同时也看看TEST_F宏::GetTypeId\ public :\ };原创 2023-02-06 10:37:35 · 1231 阅读 · 0 评论 -
【单元测试】C++单元测试框架Google Test入门之八:打造自己的单元测试框架
上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂。本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest。试想:如果是让你去设计一款单元测试框架,你会怎么去设计呢?本篇介绍性的文字比较少,主要是我们在上一篇深入解析gtest时已经将整个流程弄清楚了,而现在编写的nancytest又是其非常的精简版本,所有直接看代码就可以完全理解。希望通过这个Demo,能够让大家对gtest有更加直观的了解。原创 2023-02-06 10:53:36 · 1278 阅读 · 0 评论