开源项目推荐:C++单元测试框架googletest/Catch2/QtTest

899 阅读1分钟

单元测试,一直用的是googletest,使用时只需要下载源码编译出库,在测试工程中引用即可,googletest提供了很多宏来让我们很轻松的组织测试用例。而Catch2比googletest使用更简单,源码就一个头文件,使用时只需要将Catch2.hpp引用到工程中即可,基本的测试用例组织方法与googletest相似;对于测试工具,个人认为Catch提供的TEST_CASE+SECTION更简单。

 

1、googletest

GoogleTest框架开发过程几乎覆盖C++核心知识,是新手锻炼C++开发能力最好的项目!

github.com/google/goog…

github.com/nholthaus/g…

 

2、Catch2

github.com/catchorg/Ca…

 

3、googletest和Catch2两者的详细比较

Catch2有以下这些优势:

  • 简单易用:只需要下载catch.hpp,包含到你的工程就可以了
  • 不依赖外部库:只要你可以编译C++11,有C++的标准库就可以了
  • 测试case可以分割为sections: 每个setcion都是独立的运行单元
  • 提供了BDD式的测试模式:可以使用Given-When-Then section来做BDD测试
  • 只用一个核心的assertion宏来做比较。用标准的C++运算符来做比较,但是可以分解表达式,记录表达式等号左侧和右侧的值
  • 可以用任何形式的字符串给测试命名,不用担心名字是否合法

blog.csdn.net/wanywhn/art…

blog.csdn.net/weixin_4298…

 

4、Qt Test

doc.qt.io/qt-5/qttest…

doc.qt.io/qt-5/qsigna…

 

5、Qt Test学习教程

Qt程序单元测试学习记录 : 上

beondxin.blog.csdn.net/article/det…

Qt程序单元测试学习记录 :中

beondxin.blog.csdn.net/article/det…

Qt程序单元测试学习记录 :下

beondxin.blog.csdn.net/article/det…