couttast: 轻量级单元测试扩展静态库演化思路
couttast: 轻量级单元测试扩展静态库演化思路
作为一名 Linux C++ 程序员,我自己手搓了个单元测试库轮子,来辅助与满足日常开发
的单元测试需求。从只有一个 tinytast.hpp
头文件开始,后面逐渐添加了一些外围功
能,觉得不一定适合坚持 header-only 库的原则,就将非核心的功能写在单独的
*.cpp
源文件中,编译为静态库。代码开源在 github ,国内的 gitee 也有备份。
我觉得编写单元测试的问题可以从以下几个层次来讲,从微观到宏观。
- 断言语句;
- 单元测试用例设计;
- 单元测试用例运行与管理;
- 单元测试库、框架与集成的设计;
- 可测试程序的一般原则。
下面,我将结合个人开发 couttast
这个单元测试库的思路,谈谈本人对这些单元测试
问题的理解。重点是前三点。
题外话,我在前公司是使用过 gTest
的。几年前来到现公司尴尬地发现没有单元测试
的风气,且当初项目对集成第三方库的管理一言难尽,就想从省事角度不想多引入三方库
增加构建的麻烦。加之之前在使用 gTest
时也遇到一些痛点与不便,就决定自己手搓
一个单元测试库或框架吧,根据自己实际遇到的需求逐步加料。
关于 tast
这个词的命名,原是从尝试 (taste) 删减一个字母以便与 test
等长而
来。