我们在开发中常会遇到这样的情况:一个函数写完了,运行程序看起来没问题,就算“搞定”了。
但是…
如果你给它传入一个非法参数?别人修改了它的依赖逻辑?
如果你不管它们,那么这些被遗忘在角落“潜在问题”以后可能就会出 bug。
于是,单元测试就成为写稳健代码的利器。
但是,许多开发者因时间压力或认为集成测试足够而抗拒单元测试。
因此,本文想做的,就是用一个小例子告诉你:
原来写单元测试并不难,哪怕你从没接触过
GTest,跟着做一遍你就知道它的价值。
GTest简介
Google Test (GTest) 是 Google 出品的 C++ 单元测试框架,具备以下特点:
- 易用的断言机制:比如
EXPECT_EQ,ASSERT_TRUE - 自动发现测试用例和报告结果
- 支持测试夹具、参数化测试等高级功能
- 与生产代码分离,编译独立
它是目前 C++ 社区最主流的单元测试框架之一。
单元测试示例
接下来,我们从零开始构建一个简单的单元测试示例。(代码不用复制,文末有工程链接)
项目结构
project/
├── build
├── CMakeLists.txt
├── include
│ └── my_math.h
├── src
│ ├── CMakeLists.txt
│ └── my_math.cc
├── third_party
│ └── googletest
└── unit_test
├── CMakeLists.txt
└── my_math_test.cc
为了更加直观的表现对GTest的使用,这里手动下载GTest源码,然后将解压出来的googletest拷贝到third_party中使用。
也可以使用FetchContent等方式,有兴趣的可以深入研究下。
核心代码
include/my_math.h

最低0.47元/天 解锁文章
222

被折叠的 条评论
为什么被折叠?



