您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit單元測試入門簡介
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/3/26 14:07:34 ] 推薦標簽:白盒測試 單元測試 junit

3.4、junit的安裝和配置

junit安裝步驟分解:

在http://download.sourceforge.net/junit/中下載junit包并將junit壓縮包解壓到一個物理目錄中(例如c:\junit3.8.1)。
記錄junit.jar文件所在目錄名(例如c:\junit3.8.1junit.jar)。
進入操作系統(tǒng)(以windows2000操作系統(tǒng)為準),按照次序點擊“開始 設(shè)置 控制面板”。
在控制面板選項中選擇“系統(tǒng)”,點擊“環(huán)境變量”,在“系統(tǒng)變量”的“變量”列表框中選擇“class-path”關(guān)鍵字(不區(qū)分大小寫),如果該關(guān)鍵字不存在則添加。
雙擊“class-path”關(guān)鍵字添加字符串“c:\junit3.8.1junti.jar”(注意,如果已有別的字符串請在該字符串的字符結(jié)尾加上分號“;”),這樣確定修改后junit可以在集成環(huán)境中應(yīng)用了。
對于ide環(huán)境,對于需要用到的junit的項目增加到lib中,其設(shè)置不同的ide有不同的設(shè)置 。
3.5、junit中常用的接口和類

test接口——運行測試和收集測試結(jié)果

test接口使用了composite設(shè)計模式,是單獨測試用例 (testcase),聚合測試模式(testsuite)及測試擴展(testdecorator)的共同接口。
它的public int counttestcases()方法,它來統(tǒng)計這次測試有多少個testcase,另外一個方法是public void run( testresult ),testresult是實例接受測試結(jié)果, run方法執(zhí)行本次測試。
testcase抽象類——定義測試中固定方法

testcase是test接口的抽象實現(xiàn),(不能被實例化,只能被繼承)其構(gòu)造函數(shù)testcase(string name)根據(jù)輸入的測試名稱name創(chuàng)建一個測試實例。由于每一個testcase在創(chuàng)建時都要有一個名稱,若某測試失敗了,便可識別出是哪個測試失敗。
testcase類中包含的setup()、teardown()方法。setup()方法集中初始化測試所需的所有變量和實例,并且在依次調(diào)用測試類中的每個測試方法之前再次執(zhí)行setup()方法。teardown()方法則是在每個測試方法之后,釋放測試程序方法中引用的變量和實例。
開發(fā)人員編寫測試用例時,只需繼承testcase,來完成run方法即可,然后junit獲得測試用例,執(zhí)行它的run方法,把測試結(jié)果記錄在testresult之中。
assert靜態(tài)類——一系列斷言方法的集合

assert包含了一組靜態(tài)的測試方法,用于期望值和實際值比對是否正確,即測試失敗,assert類會拋出一個assertionfailederror異常,junit測試框架將這種錯誤歸入failes并加以記錄,同時標志為未通過測試。如果該類方法中指定一個string類型的傳參則該參數(shù)將被做為assertionfailederror異常的標識信息,告訴測試人員改異常的詳細信息。
junit 提供了6大類31組斷言方法,包括基礎(chǔ)斷言、數(shù)字斷言、字符斷言、布爾斷言、對象斷言。
其中assertequals(object expcted,object actual)內(nèi)部邏輯判斷使用equals()方法,這表明斷言兩個實例的內(nèi)部哈希值是否相等時,好使用該方法對相應(yīng)類實例的值進行比較。而assertsame(object expected,object actual)內(nèi)部邏輯判斷使用了java運算符“==”,這表明該斷言判斷兩個實例是否來自于同一個引用(reference),好使用該方法對不同類的實例的值進行比對。asserequals(string message,string expected,string actual)該方法對兩個字符串進行邏輯比對,如果不匹配則顯示著兩個字符串有差異的地方。comparisonfailure類提供兩個字符串的比對,不匹配則給出詳細的差異字符。
testsuite測試包類——多個測試的組合

testsuite類負責(zé)組裝多個test cases。待測得類中可能包括了對被測類的多個測試,而testsuit負責(zé)收集這些測試,使我們可以在一個測試中,完成全部的對被測類的多個測試。
testsuite類實現(xiàn)了test接口,且可以包含其它的testsuites。它可以處理加入test時的所有拋出的異常。
testsuite處理測試用例有6個規(guī)約(否則會被拒絕執(zhí)行測試)
a 測試用例必須是公有類(public)

b 測試用例必須繼承與testcase類

c 測試用例的測試方法必須是公有的( public )

d 測試用例的測試方法必須被聲明為void

e 測試用例中測試方法的前置名詞必須是test

f 測試用例中測試方法誤任何傳遞參數(shù)

n testresult結(jié)果類和其它類與接口

testresult結(jié)果類集合了任意測試累加結(jié)果,通過testresult實例傳遞個每個測試的run()方法。testresult在執(zhí)行testcase是如果失敗會異常拋出
testlistener接口是個事件監(jiān)聽規(guī)約,可供testrunner類使用。它通知listener的對象相關(guān)事件,方法包括測試開始starttest(test test),測試結(jié)束endtest(test test),錯誤,增加異常adderror(test test,throwable t)和增加失敗addfailure(test test,assertionfailederror t)
testfailure失敗類是個“失敗”狀況的收集類,解釋每次測試執(zhí)行過程中出現(xiàn)的異常情況。其tostring()方法返回“失敗”狀況的簡要描述


3.6、junit一個實例

在控制臺中簡單的范例如下:
1、寫個待測試的triangle類,創(chuàng)建一個testcase的子類exampletest:
2、 exampletest中寫一個或多個測試方法,斷言期望的結(jié)果(注意:以test作為待測試的方法的開頭,這樣這些方法可以被自動找到并被測試)
3、 exampletest中寫一個suite()方法,它會使用反射動態(tài)的創(chuàng)建一個包含所有的testxxxx方法的測試套件:
4、 exampletest可以寫setup()、teardown()方法,以便于在測試時初始化或銷毀測試所需的所有變量和實例。(不是必須的)

5、寫一個main()方法以文本運行器或其它gui的方式方便的運行測試

6、編譯exampletest,執(zhí)行測試。

3.7、eclipse中junit的使用

eclipse自帶了一個junit的插件,不用安裝可以在你的項目中開始測試相關(guān)的類,并且可以調(diào)試你的測試用例和被測試類。

使用步驟如下:

1、新建一個測試用例,點擊“file->new->other…菜單項,在彈出的“new”對話框中選擇”java->junit”,下的testcase 或testsuite,進入“new junit testcase”對話框

2、在“new junit testcase”對話框填寫相應(yīng)的欄目,主要有name(測試用例名),superclass(測試的超類一般是默認的junit.framework.testcase),class under test(被測試的類),source folder(測試用例保存的目錄),package(測試用例包名),及是否自動生成main,setup,teardown方法。

3、如果點擊下面的”next>”按鈕,你還可以直接勾選你想測試的被測試類的方法,eclipse將自動生成與被選方法相應(yīng)的測試方法,點擊“fishish”按鈕后一個測試用例創(chuàng)建好了。

4、編寫完成你的測試用例后,點擊“run”按鈕可以看到運行結(jié)果了。

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