-
Notifications
You must be signed in to change notification settings - Fork 1
A 常见问题 FAQ
lymslive edited this page Apr 26, 2024
·
1 revision
Q: 为什么叫 tast 而不是 test ?
A: 因为测试是从尝试开始的,然后 taste
比 test
多了一个字母,为了对齐,就缩减成了 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.hpp
或 couttast.hpp
。