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

3.4、junit的安裝和配置

junit安裝步驟分解:

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

test接口——運(yùn)行測(cè)試和收集測(cè)試結(jié)果

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

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

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

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

b 測(cè)試用例必須繼承與testcase類(lèi)

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

d 測(cè)試用例的測(cè)試方法必須被聲明為void

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

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

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

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


3.6、junit一個(gè)實(shí)例

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

5、寫(xiě)一個(gè)main()方法以文本運(yùn)行器或其它gui的方式方便的運(yùn)行測(cè)試

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

3.7、eclipse中junit的使用

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

使用步驟如下:

1、新建一個(gè)測(cè)試用例,點(diǎn)擊“file->new->other…菜單項(xiàng),在彈出的“new”對(duì)話框中選擇”java->junit”,下的testcase 或testsuite,進(jìn)入“new junit testcase”對(duì)話框

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

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

4、編寫(xiě)完成你的測(cè)試用例后,點(diǎn)擊“run”按鈕可以看到運(yùn)行結(jié)果了。

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