翻译问题来源:https://github.com/catchorg/Catch2/blob/master/docs/why-catch.mdgit
其余辅助博文:从Google Test 转到 Catchgithub
那么Catch给派对带来了什么呢?服务器
快速且很是容易上手。 只需下载catch.hpp,#include它就能够了。
没有外部依赖。 只要您能够编译C ++ 11而且可使用C ++标准库。
将测试用例写为自注册函数(或方法,若是您愿意)。
将测试用例分红几个部分,每一个部分都是隔离运行的(不须要固定装置)。
使用BDD样式的Given-When-Then部分以及传统的单元测试用例。
只有一个核心断言宏用于比较。 标准C / C ++运算符用于比较 - 可是完整表达式被分解并记录lhs和rhs值。
测试使用自由格式字符串命名 - 再也不使用合法标识符中的链接名称。app
能够标记测试以便轻松运行特定的测试组。
失败能够(可选)进入Windows和Mac上的调试器。
输出是经过模块化报告对象。 包括基本的文本和XML记者。 能够轻松添加自定义记者。
支持JUnit xml输出与第三方工具(如CI服务器)集成。
提供了默认的main()函数,但您能够提供本身的完整控件(例如集成到您本身的测试运行器GUI中)。
提供了命令行解析器,若是您选择提供本身的main()函数,仍然可使用它。
Catch能够测试本身。
备用断言宏报告失败但不停止测试用例
浮点容差比较使用富有表现力的约()语法构建。
内部和友好的宏是隔离的,所以能够管理名称冲突
匹配器框架