看了前面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 ...