您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUNIT源碼探秘系列(上)
作者:網絡轉載 發(fā)布時間:[ 2013/4/16 14:10:56 ] 推薦標簽:

1.1      初始化加載用例集階段

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

public static Test suite() {

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

return suite;}

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

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

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

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

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

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

4.         在測試方法中調用并初始化TestSuite

5.         將一個個testSuite對象加載到測試集中

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

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

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

另外:注意一點,當測試代碼中含有構造函數,時,在上圖中第7步中,會判斷是否含有構造函數,如果有增加兩步,則按照下圖所示執(zhí)行

(1)       通過反射找到構造函數,

(2)       通過構造函數初始化構造對象,即tecase

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

 

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