您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
JUNIT源碼探秘系列(上)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/4/16 14:10:56 ] 推薦標(biāo)簽:

1.1      初始化加載用例集階段

在初始化加載階段,程序解析主要有一個(gè)重要分支,一個(gè)是測(cè)試代碼中是否有”suite”關(guān)鍵字,兩外在測(cè)試代碼中是否含有”RepeatedTest”也要注意。

public static Test suite() {

    TestSuite suite = new TestSuite();
suite.addTestSuite(CalculatorTest.class);

return suite;}

我們先看看代碼中含有”suite”的加載過程,下圖所示(根據(jù)代碼繪制):

步驟(測(cè)試代碼中含有“suite”):

1.         Main方法先new TestResult,然后待用start方法;start方法中主要做了兩件事情,初始化解析加載測(cè)試集,即getTest;另外一件是執(zhí)行調(diào)度測(cè)試集并記錄測(cè)試結(jié)果,即doRun

2.         在start方法中調(diào)用BaseTestRunner中的getTest(),在getTest中,通過反射檢查測(cè)試代碼中是否含有“suite”關(guān)鍵字,如果沒有則按上圖的流程圖執(zhí)行調(diào)用,創(chuàng)建一個(gè)TestSuite

3.         如果有則如上圖所示執(zhí)行,通過反射調(diào)用解析測(cè)試方法

(Test)suiteMethod.invoke(null, new Class[0]);

4.         在測(cè)試方法中調(diào)用并初始化TestSuite

5.         將一個(gè)個(gè)testSuite對(duì)象加載到測(cè)試集中

6.         通過反射的方法,從測(cè)試代碼中解析出所有測(cè)試方法,然后篩選出test開頭,且參數(shù)為空,類型為viod的方法,

7.         找到待測(cè)試的方法(6中篩選過濾),然后通過反射后newInstance一個(gè)個(gè)測(cè)試方法,轉(zhuǎn)化成Junit的測(cè)試用例(testcase)

8.         將Junit轉(zhuǎn)化的測(cè)試用例加載fTest測(cè)試集中,待執(zhí)行

另外:注意一點(diǎn),當(dāng)測(cè)試代碼中含有構(gòu)造函數(shù),時(shí),在上圖中第7步中,會(huì)判斷是否含有構(gòu)造函數(shù),如果有增加兩步,則按照下圖所示執(zhí)行

(1)       通過反射找到構(gòu)造函數(shù),

(2)       通過構(gòu)造函數(shù)初始化構(gòu)造對(duì)象,即tecase

上面說明了下在測(cè)試代碼中含有“suite”的情況,下面接著繼續(xù)看看測(cè)試代碼中不含有“suite”時(shí),如下圖

 

上一頁12345下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd