C 測試框架的選擇

2021-05-22 05:55:17 字數 1532 閱讀 6286

c++測試框架的選擇

(金慶的專欄)

本文以**形式總結了 「exploring the c++ unit testing framework jungle」 ( http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle ) 一文對各種單元測試框架的比較,並新增了原文所還沒有加入的google test. 並新增了另一項特性比較,即對mock物件的支援。

各比較項為:

1.加入新測試最小化工作量

2.便於修改和移植

3.便於裝配/拆卸測試環境(fixtures)

4.對異常以及崩潰很好的控制

5.好的斷言功能

6.支援不同的輸出方式

7.支援測試套件(suites)

8.對mock物件的支援

框架 1.工作量

2.可移植性

3.fixtures

4.異常

5.斷言

6.各種輸出

7. 測試套件

8.mock

cppunit

多 需rtti, stl

支 持

支援 很好

支援 支援

不支援

boost.test

一般 需rtti, stl, boost

支 持

支援最好

支援 支援

支 持

不支援

cppunitlite

少 很好

不 支援

不支援

很差 不支援

不 支援

不支援

nanocppunit

少 僅windows

支 持

未知 支援

不支援

支援 不支援

unit++

很多 一般

不 支援

一般 不支援浮點數

未知 支 持

不支援

cxxtest

少 很好

支 持

支援 支援

支援 支援

支援 google test

少 很好

支 持

支援 很好

未知 支援

不支援

原作者喜歡:cppunit, boost.test, cppunitlite, 和 cxxtest.

從支援mock物件這一點來看,只有cxxtest支援。而mock對於單元測試是很關鍵的。

cxxtest新增新的測試工作量非常小;無須註冊測試用例;可移植性很 好;便於裝卸;控制異常、崩潰方面的能力也不錯;擁有良好的斷言功能;支援多種輸出方式;支援測試套件。

最大的優點:編譯即測試方式,並且可以雙擊結果行立即定位到相應的源**,相當吸引人;支援多種輸出,輸出結果較為詳細;編寫測試簡單;

缺點:需要用到perl對測試**進行文法掃瞄,生成可執行**,需要用到makefile檔案(不是必須);準備工作比較麻煩。

C 測試框架的選擇

c 測試框架的選擇 金慶的專欄 本文以 形式總結了 exploring the c unit testing framework jungle 一文對各種單元測試框架的比較,並新增了原文所還沒有加入的google test.並新增了另一項特性比較,即對mock物件的支援。各比較項為 1.加入新測試最...

單元測試框架的選擇

今天給大家介紹單元測試的概念,以python語言為基礎,帶你了解如何選擇單元測試框架。單元測試是指,對軟體中的最小可測試單元在與程式其他部分相隔離的情況下進行檢查和驗證的工作,這裡的最小可測試單元通常是指函式或者類。從 基礎元件 開測,單元測試物件是 以函式或類為單位,完成基礎測試,在 封裝成 功能...

C 測試架構的選擇

衡量指標 1.加入新測試最小化工作量 2.便於修改和移植 作者的意思是說比如rtti,stl,exception這些高階特性可能妨礙在不同的平台,不同版本編譯器下面的可移植性 3.便於裝配 拆卸測試環境 4.對異常以及崩潰很好的控制 5.好的斷言功能 6.支援不同的輸出方式 7.支援測試套件 sui...