學習筆記 解讀CppUnit原始碼2

2021-05-10 10:41:34 字數 856 閱讀 8037

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

testdecorator.h

這個類中儲存了乙份test的指標,這個類的counttestcases方法,run方法和getchildtestcount方法,其實都是呼叫這個指標對應的方法,當然乙個也只是裝飾的基類,而真正的類功能擴充套件是放在它的子類中。

repeatedtest.h

這個類加了乙個m_timesrepeat變數(擴充套件),就實現了單個測試用例的重複測試。

testsetup.h

跟上面乙個相比,它做的不是類成員變數的擴充而是方法的擴充。這塊**是對decorator模式的美妙運用,這樣想再擴充套件test抽象類功能的時候就變得方便多了。因為不用該其他類了。相同的**還運用在了testcasedecorator這個地方。**基本相同,在這裡就不廢話了。

下面該說說另外乙個很重要的類,testfixture,相信從這個名字中大家就可以知道了這個是測試的裝置器,因為在物件導向的類的測試中,不光光是執行乙個類中的乙個共有的方法就可以了,至少應該要做被測類的new以及相關測試所必需的成員變數的賦值等等。而裝置器正是做這些事情。前面講的testcase就多重繼承了它。

testfixture.h

因為是空的虛函式,那麼setup和teardown這兩個方法是在**實現的呢?當然是在具體的測試類中實現(如exampletestcase,它繼承自testfixture,然後再擴充套件這兩個方法的功能)。

學習筆記 解讀CppUnit原始碼6

看了前面5章的話,就可以了解cppunit大致的結構了。這裡講講一些並不是很核心但卻是不可貨缺的 看看他們雖然學不到優秀的設計知識,但是鞏固一下c 的基礎也不錯。sourceline.h c中關於檔名和 所在的行數有兩個巨集定義 file line 方便在除錯和其他場合輸出。而這個sourcelin...

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 ...