Skip to content

A 常见问题 FAQ

lymslive edited this page Apr 26, 2024 · 1 revision

关于命名

Q: 为什么叫 tast 而不是 test ?

A: 因为测试是从尝试开始的,然后 tastetest 多了一个字母,为了对齐,就缩减成了 tast 。也因此,定义单元测试用例的宏叫 DEF_TAST 了,但宏很容易重命名,按自己喜好,如:

#define DEF_TEST(...) DEF_TAST(__VA_ARGS__)
#define TEST(...) DEF_TAST(__VA_ARGS__)

关于造轮子

Q: 已经有很多单元测试的开源库,为什么还要再造个轮子?

A: 作者也曾在一家公司的项目组用过 gTest ,曾经历一个麻烦事。全量运行单元测试有几个失败,但单独测其中任一个是成功了。而 gTest 的命令行参数筛选用例很麻烦,很难指定几个用例按顺序运行(验证它们是否互相影响了)。后来在另一家公司时,暂无单元测试的风气,就决定自己从头写个单元测试库了,也是一种历练。参考了部分 gTest 的思想,但又完全不同。希望 couttast 能助于程度开发从简单到复杂、逐渐迭代优化单元测试用例,适用于从教学演示到正规项目多维度场景的单元测试。

关于分层库选择

Q: couttast 标称了三级功能的库,我该选用哪个?

A: 按需选择。如果只为体验或简单写个小程序验证一些小功能,单独下载拷贝 tinytast.hpp 放在一起就行。即使对于中小项目,很多测试模块只用 tinytast.hpp 也可能足够了。但如果项目已有合适的构建脚本,加上包含 couttast.h 与链接 -lcouttast 也不是难事。不过除了对于实在大的项目,超多单元测试用例,希望利用多核并行运行用例加速,其实也没有一定要用 couttast.h 的必要。另外,对于 windows 系统,静态库部分功能可能还不兼容,则可只用 tinytast.hppcouttast.hpp

Clone this wiki locally