C++11 模板元編程 - TLP測試框架


既然說可以把模板元編程當做一門獨立的語言,那么針對這門語言,我們希望能有一個專門的xUnit測試框架。

傳統的C++測試框架,如gtest,cppUnit等,主要針對運行期C++設計。既然模板元編程運行在C++編譯期,那么我們希望針對它的測試框架也運行在C++編譯期。另外雖然C++編譯期能用的基礎設施捉襟見肘,但我們還是希望該框架的用法能和傳統的xUnit測試框架類似,支持基本的測試斷言和用例管理。

TLP庫中實現了這樣一個測試框架,它的設計初衷是為了能夠測試TLP庫自身。它專門針對C++編譯期計算做測試,所有測試用例運行在C++的編譯期,一旦編譯通過,則相當所有的測試用例執行成功。一旦有執行失敗的用例,就會導致編譯錯誤,等待去修復用例。它支持定義testcase,支持將testcase劃分到不同的fixture中,并提供測試統計和測試報告。

下面我們講述一下該框架的一些主要設計技巧,涉及到的技術細節對大家學習模板元編程會有不少幫助。


測試斷言

返回 C++11模板元編程 - 目錄

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 熟悉C++的程序員都知道,C++是一門多范式編程語言,支持面向過程、面向對象、泛型編程以及函數式編程范式。然而提到...
    MagicBowen閱讀 7,167評論 8 18
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,242評論 25 708
  • 我們知道一個完整的測試框架還需要有用例過濾和用例統計匯報的功能。由于模板元編程基本沒有任何IO能力,所以用例過濾和...
    MagicBowen閱讀 1,094評論 1 2
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • 既然fixture內部可以定義setup,我們自然希望也能對稱地定義teardown,用于處理同一個fixture...
    MagicBowen閱讀 1,270評論 0 1