[原][譯]咱們爲何須要另外一個c++測試框架?Catch||Why do we need yet another C++ test framework?

翻譯問題來源:https://github.com/catchorg/Catch2/blob/master/docs/why-catch.mdgit

其餘輔助博文:從Google Test 轉到 Catchgithub

Why do we need yet another C++ test framework?

好問題。 對於C ++,有不少已創建的框架,包括(但不限於),Google Test,Boost.Test,CppUnit,Cute,不少甚至更多。

那麼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能夠測試本身。
備用斷言宏報告失敗但不停止測試用例
浮點容差比較使用富有表現力的約()語法構建。
內部和友好的宏是隔離的,所以能夠管理名稱衝突
匹配器框架

這是使用catch的開源庫列表

這是catch的教程

相關文章
相關標籤/搜索