? Test最重要的一個公共接口為:
virtual void run(TestResult *result) = 0;
其作用為執行測試對象,將結果提交給result。
? 在實際應用中,一般不會直接使用Test、TestComposite以及TestLeaf,除非要重新定制某些機制。
核心內容 ---TestFixture
? 用于維護一組測試用例的上下文環境
? 在實際應用中,經常會開發一組測試用例來對某個類的接口加以測試,而這些測試用例很可能具有相同的初始化和清理代碼。為此,CppUnit引入TestFixture來實現這一機制。
? TestFixture具有以下兩個接口,分別用于處理測試環境的初始化與清理工作:
? virtual void setUp();
virtual void tearDown();
核心內容 ---TestCase
? 測試用例,從名字上就可以看出來,它便是單元測試的執行對象。
? TestCase從Test和TestFixture多繼承而來,通過把Test::run制定成模板函數(Template Method)而將兩個父類的操作融合在一起
? 這里要提到的是函數runTest,它是TestCase定義的一個接口,原型如下:
virtual void runTest();
? 用戶需從TestCase派生出子類并實現runTest以開發自己所需的測試用例。
核心內容 ---TestSuit
? 測試包,按照樹形結構管理測試用例
? TestSuit是TestComposite的一個實現,它采用vector來管理子測試對象(Test),從而形成遞歸的樹形結構。
核心內容 --- TestCaller
? TestCase適配器(Adapter),它將成員函數轉換成測試用例
? 雖然可以從TestCase派生自己的測試類,但從TestCase類的定義可以看出,它只能支持一個測試用例,這對于測試代碼的組織和維護很不方便,尤其是那些有共同上下文環境的一組測試。為此,CppUnit提供了TestCaller以解決這個問題
文章來源于領測軟件測試網 http://www.kjueaiud.com/