[原][译]我们为什么需要另一个c++测试框架?Catch||Why do we need yet another C++ test framework?
翻译问题来源:https://github.com/catchorg/Catch2/blob/master/docs/why-catch.md
其他辅助博文:从Google Test 转到 Catch
Why do we need yet another C++ test framework?
那么Catch给派对带来了什么呢?
主要特点
快速且非常容易上手。 只需下载catch.hpp,#include它就可以了。
没有外部依赖。 只要您可以编译C ++ 11并且可以使用C ++标准库。
将测试用例写为自注册函数(或方法,如果您愿意)。
将测试用例分成几个部分,每个部分都是隔离运行的(不需要固定装置)。
使用BDD样式的Given-When-Then部分以及传统的单元测试用例。
只有一个核心断言宏用于比较。 标准C / C ++运算符用于比较 - 但是完整表达式被分解并记录lhs和rhs值。
测试使用自由格式字符串命名 - 不再使用合法标识符中的连接名称。
其他核心功能
可以标记测试以便轻松运行特定的测试组。
失败可以(可选)进入Windows和Mac上的调试器。
输出是通过模块化报告对象。 包括基本的文本和XML记者。 可以轻松添加自定义记者。
支持JUnit xml输出与第三方工具(如CI服务器)集成。
提供了默认的main()函数,但您可以提供自己的完整控件(例如集成到您自己的测试运行器GUI中)。
提供了命令行解析器,如果您选择提供自己的main()函数,仍然可以使用它。
Catch可以测试自己。
备用断言宏报告失败但不中止测试用例
浮点容差比较使用富有表现力的约()语法构建。
内部和友好的宏是隔离的,因此可以管理名称冲突
匹配器
这是使用catch的开源库列表
这是catch的教程
[原][译]我们为什么需要另一个c++测试框架?Catch||Why do we need yet another C++ test framework?的更多相关文章
- 「译」JUnit 5 系列:条件测试
原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...
- ios 一个正则表达式测试(只可输入中文、字母和数字)
一个正则表达式测试(只可输入中文.字母和数字) 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上 ...
- 一个响应式框架——agera
Google在上周开源了一个响应式框架——agera,相信它会慢慢地被广大程序员所熟知.我个人对这样的技术是很感兴趣的,在这之前也研究过RxJava,所以在得知Google开源了这样的框架之后第一时间 ...
- 【通信】Netty JBOSS提供的一个java开源框架
Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序dsf. 也就是说,Netty 是一个基 ...
- QT带OpenGL与不带的区别,QT5是一个伟大的框架,短时期内根本不会有替代者
你好 , 我Qt的初学者 , 我在官网下载Qt时感觉很迷茫 , 不知道要下载哪个, 麻烦你写他们之间的不同点:Qt 5.2.0 for Windows 32-bit (MinGW 4.8, OpenG ...
- Dubbo[一个分布式服务框架
http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm#UserGuide-zh-API%E9%85%8D%E7%BD%AE http: ...
- Cola:一个分布式爬虫框架 - 系统架构 - Python4cn(news, jobs)
Cola:一个分布式爬虫框架 - 系统架构 - Python4cn(news, jobs) Cola:一个分布式爬虫框架 发布时间:2013-06-17 14:58:27, 关注:+2034, 赞美: ...
- 你是否应该使用一个Javascript MVC框架?
你是否应该使用一个Javascript MVC框架?本文摘自smashingmagazine的Journey Through The JavaScript MVC Jungle部分内容,希望对大家有帮 ...
- 第一个ServiceStack服务框架
第一个ServiceStack服务框架 最近刚接触ServiceStack,就尝试着写了第一个服务框架,难免出错,还望同道们多多指正. 关于ServiceStack相关的概念不在做详细的叙述,网上研究 ...
随机推荐
- Git知识
git最小化配置: 配置user.name 和 user.email git config --global user.name 'your_name' git config --global use ...
- rinetd 通过公网连接云数据库
在很多云服务中,经常会遇到云存储数据库没有公网(外网)地址,只有内网地址,这导致在公司网无法访问,这是一个很困扰的问题,这时我们可以使用rinetd进行转发实现外网连接. 首先需要一台能够连接上数据库 ...
- Spring MVC请求流程
Spring MVC 发起请求到前端控制器DispathServlet 前端控制器请求处理器映射器 handerMapping查找handler 处理器映射器handerMapping像前端控制器返回 ...
- Objective-C RunTime 学习笔记 之 消息转发流程
1) 当向某个对象发送消息时,先从cache(cache_t)中查找方法对象(method_t),如果找到则进行回调:否则通过查找对象的类(元类)定义中方法列表,一直追溯到NSObject, 如果找到 ...
- jQuery - 链(Chaining)
http://www.runoob.com/jquery/jquery-chaining.html jQuery - 链(Chaining) 通过 jQuery,可以把动作/方法链接在一起. Chai ...
- Qt QML 2D shader
--------------------------------------------------- Qt quick 2d shader effect ---------------------- ...
- 记自己利用hexo和github搭建个人博客的过程
--------------------------------------可能我书写的方式跟别人顺序不一样,但这是我的成功经验------------------------------------ ...
- 【转】Anaconda下安装pyecharts步骤及常见错误
本文转载自:https://blog.csdn.net/skj1995/article/details/81187954 (1)之前看了几篇博客,有人说用cmd命令在目录C:\Users\Admini ...
- 2018-2019-2 《网络对抗技术》 Exp1 PC平台逆向破解 20165215
2018-2019-2 <网络对抗技术> Exp1 PC平台逆向破解 20165215 目录 知识点描述 实验步骤 (一)直接修改程序机器指令,改变程序执行流程 (二)通过构造输入参数,造 ...
- java问题排查之Load CPU很高
1首先 找到对应的java进程id ps -aux | grep java 这个命令可以找到 2.接下来就是查找比较耗CPU的线程id top -H -p pid 这里可以观察出来耗时最多的几个进程中 ...