25 | 两个单元测试库:C++里如何进行单元测试?
该思维导图由 AI 生成,仅供参考
Boost.Test
- 深入了解
- 翻译
- 解释
- 总结
C++单元测试是程序员工作中不可或缺的一部分。本文介绍了两个C++单元测试库:Boost.Test和Catch2。Boost.Test提供了丰富的功能和灵活的命令行参数,可以满足不同的测试需求。而Catch2则具有简单方便的特点,只需要单个头文件即可使用,且支持BDD风格的分节形式。两者在测试结果输出格式方面都具有灵活性,但在终端色彩友好度上有所差异。此外,文章还提到了Catch2的编译速度较慢,但在实际项目中并不构成问题。总的来说,这两个单元测试库都是优秀的框架,可以满足日常开发的需要。读者可以根据自己的需求和实际情况选择适合的测试框架。文章通过实际例子展示了两个库的使用方法,读者可以通过实验来确定哪一个更适合自己的需求。整体而言,Catch2是一个现代、好用的测试框架,对于新项目来说更简单、更容易上手。文章还提到了Boost.Test和Catch2的参考资料,方便读者深入学习。
《现代 C++ 编程实战》,新⼈⾸单¥59
全部留言(7)
- 最新
- 精选
- 承君此诺我用的是cmake ctest,个人观点,它很适合测试整个程序,不适合细分到测试某个功能函数。所以,我在看google的gtest。这2个测试框架,您怎么看
作者回复: 这两个都没有实际使用经验。如果你需要的功能都有,那就没有切换的理由吧。如果不足,就试试其他的。鉴于选择实在太多,重点试几个,满足需求就行了。我一直用 Boost.Test 的理由就是没找到换门的理由,而不是它有多好。当然,至少它是不差的。从下面这个列表里看(几十个 C++ 单元测试框架的概要对比),看起来没有严重缺的东西: https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C++
2020-01-229 - 杨超然老师,有什么工具可以自动分析代码,展示变量之间的调用关系呢?我遇到的代码还牵涉到数组,数组的每个字段都有特定的含义,而代码直接用下标读写和修改数组的字段,且没有标字段的名称。因此,有代码分析工具可以精确到数组里的某一字段,展示它跟其它变量的关系吗?
作者回复: 恐怕没有——至少我不知道。数组尤其复杂,因为你还可以用指针加偏移量访问,静态分析理论上就不可能能完整分析出来。
2021-10-161 - Geek_227a72BDD有完整运行代码吗?
作者回复: 你是说这种? https://github.com/adah1972/geek_time_cpp/tree/master/25/catch2
2021-04-071 - 易轻尘很有用的一节 不过Boost.Test也可以使用header-only的方式,使用<boost/test/included/unit_test.hpp>头文件就可以了
作者回复: 嗯。我介绍的是最常用/推荐的方式。Header-only上手快,看起来很美;但实际工程中出于编译速度等各方面考量通常不用。Catch2比较异类的地方是一共只有一个文件,所以上手就更快了。即便如此,实际用起来也是不用header-only更好。
2020-06-17 - 晚风·和煦老师,map里面插入成万条数据,如何释放内存呢
作者回复: 全部清空吗?用clear()有问题?
2020-01-235 - EricHu老师,我想请教一下C++的友元类,它会破坏类的封装性,实际在开发中建议使用吗?要怎么做到类似JAVA反射的效果,访问修改内部静态变量
作者回复: 尽量不用,但有时候必须用啊。比如我在智能指针的实现里就用了。 跟Java的比较,你说的情况我不熟。泛泛而言,不要在C++里模拟其他语言的做法。退一步,看你要达到的目的是什么,再看语言有什么机制可以满足目标。C++里目前没反射机制,可预见的将来也大概只会有供编译期使用的静态反射。
2020-01-22 - fl260919784gtest有人有吗😂2020-02-18115