单元测试,一直用的是googletest,使用时只需要下载源码编译出库,在测试工程中引用即可,googletest提供了很多宏来让我们很轻松的组织测试用例。而Catch2比googletest使用更简单,源码就一个头文件,使用时只需要将Catch2.hpp引用到工程中即可,基本的测试用例组织方法与googletest相似;对于测试工具,个人认为Catch提供的TEST_CASE+SECTION更简单。
1、googletest
GoogleTest框架开发过程几乎覆盖C++核心知识,是新手锻炼C++开发能力最好的项目!
https://github.com/google/googletest
https://github.com/nholthaus/gtest-runner
2、Catch2
https://github.com/catchorg/Catch2
3、googletest和Catch2两者的详细比较
Catch2有以下这些优势:
简单易用:只需要下载catch.hpp,包含到你的工程就可以了
不依赖外部库:只要你可以编译C++11,有C++的标准库就可以了
测试case可以分割为sections: 每个setcion都是独立的运行单元
提供了BDD式的测试模式:可以使用Given-When-Then section来做BDD测试
只用一个核心的assertion宏来做比较。用标准的C++运算符来做比较,但是可以分解表达式,记录表达式等号左侧和右侧的值
可以用任何形式的字符串给测试命名,不用担心名字是否合法
https://blog.csdn.net/wanywhn/article/details/83655406
https://blog.csdn.net/weixin_42981623/article/details/106886084
4、Qt Test
https://doc.qt.io/qt-5/qttest-index.html
https://doc.qt.io/qt-5/qsignalspy.html
5、Qt Test学习教程
Qt程序单元测试学习记录 : 上
https://beondxin.blog.csdn.net/article/details/107298088
Qt程序单元测试学习记录 :中
https://beondxin.blog.csdn.net/article/details/107893280
Qt程序单元测试学习记录 :下
https://beondxin.blog.csdn.net/article/details/107893292