學習筆記 解讀CppUnit原始碼6

2021-05-10 12:48:40 字數 908 閱讀 9976

看了前面5章的話,就可以了解cppunit大致的結構了。這裡講講一些並不是很核心但卻是不可貨缺的**。看看他們雖然學不到優秀的設計知識,但是鞏固一下c++的基礎也不錯。

sourceline.h

c中關於檔名和**所在的行數有兩個巨集定義(__file__,__line__),方便在除錯和其他場合輸出。而這個sourceline類正是對兩者的封裝。需要補充一點請大家注意sourceline::operator !=操作符過載,在它的方法實現裡面,是呼叫了operator==,即保證了語義的正確,又避免了**重複

message.h

message類是對乙個字串(簡短描述)和複數行字串的乙個封裝。

exception.h

exception類聚集了異常處理輸出所需要的message和sourceline。其中exception繼承自std::exception目的就是要過載what方法來輸出錯誤資訊。

testfailure.h

這個testfailure類裡面有兩種狀態:failure和error。failure是我們測試中斷言報錯的,error就是在保護裡面報出的錯誤。這個類聚集了test,exception,source,這個類的輸出跟testresult的子類:testresultcollector裡面輸出。

接下來該看看具體如何輸出資料

outputter.h

compileroutputter.h

textoutputter.h

如何輸出測試資訊還有乙個類叫:xmloutputter,具體如何輸出個人覺得沒有什麼好研究的,所以在這裡就一筆帶過了。

學習筆記 解讀CppUnit原始碼2

上次我詳細的剖析了與test.h相互關聯的 test類是cppunit的核心。test這個類相信看了上一章就知道,也就起到測試用例的作用,但是畢竟乙個類的功能有限,如何擴充test類的功能呢?下面裝飾者模式就登場了。testdecorator.h 這個類中儲存了乙份test的指標,這個類的count...

CPPUnit學習筆記

2 解壓 tar xf cppunit 1.12.1.tar.gz 3 進入目錄後執行configure 4 編譯makefiles make make install 以上步驟執行後出現問題 make失敗 糾結查了好久,終於在stackflow上看到解決辦法 1 ubuntu 16.04 lts ...

CPPUNIT學習系列筆記4

helloworld.cpp include include include include include include include 建立乙個測試用例,繼承自testcase 該測試用例裡面有乙個測試函式 class test public cppunit ns testcase void ...