您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
JUnit中巧妙運(yùn)用Metedata
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/6 15:10:10 ] 推薦標(biāo)簽:

  JUnit4至今還是神神秘秘,不知道終是個(gè)什么樣子。但是已經(jīng)有文章在對(duì)其進(jìn)行介紹。先不管文章里描述的是否是JUnit4后的面貌,我們可以從中看出JUnit4借助Tiger的新特性進(jìn)行了不小的改進(jìn),尤其是元數(shù)據(jù)(Metadata)的應(yīng)用。
  
  在文章透露出的所有信息里面,幾乎所有的改進(jìn)都和元數(shù)據(jù)有關(guān)。以前一切依靠命名規(guī)范來(lái)約束的方法,現(xiàn)在都改為通過(guò)不同類(lèi)型的元數(shù)據(jù)來(lái)加以區(qū)別。當(dāng)然這倒沒(méi)有什么大不了的,通過(guò)元數(shù)據(jù)注釋?zhuān)∕etadata Annotations)也許會(huì)顯得代碼看起來(lái)更加醒目一些。
  
  文章中稱(chēng)JUnit4正式的引入了類(lèi)級(jí)別的setUp和tearDown,使得在多個(gè)測(cè)試方法運(yùn)行前可以統(tǒng)一初始化,并在這些測(cè)試方法運(yùn)行結(jié)束后統(tǒng)一回收。我曾經(jīng)在我以前的JUnit源碼分析中提到過(guò)這個(gè)問(wèn)題,但是當(dāng)時(shí)我沒(méi)有理解JUnit為什么沒(méi)有提供類(lèi)級(jí)別的支持:為了保持每個(gè)測(cè)試用例的完全獨(dú)立性。不過(guò)有些時(shí)候提供類(lèi)級(jí)別的setUp、tearDown還是有必要的,前提是使用得當(dāng)。
  
  說(shuō)了這么多,忘了一點(diǎn),類(lèi)級(jí)別setUp和tearDown的聲明也是使用元數(shù)據(jù)加以標(biāo)示的。
  
  JUnit4對(duì)元數(shù)據(jù)的成功應(yīng)用還在于對(duì)期望異常測(cè)試的簡(jiǎn)化。如果在3.8.1中,編寫(xiě)一個(gè)測(cè)試用例,以測(cè)試代碼是否能按你期望的那樣拋一個(gè)業(yè)務(wù)異常出來(lái)。你需要先try后catch,并且還要在沒(méi)有達(dá)到預(yù)期結(jié)果時(shí)手動(dòng)fail。的確不是很方便,這一點(diǎn)我有體會(huì)。到了JUnit4中,通過(guò)帶有excepted參數(shù)的test標(biāo)記,你可以很輕松的做到與3.8.1中完全一樣的效果,它不僅僅是的代碼變得清晰好看,而且還為我們節(jié)省了不少寶貴的時(shí)間。
  
  此外,還有一些地方應(yīng)用元數(shù)據(jù)來(lái)提供更多的功能,而且有些地方還使用到了Tiger中的其它特性。距此篇文章發(fā)表已有近兩個(gè)月的時(shí)間了,JUnit4仍然沒(méi)有動(dòng)靜,這預(yù)示著什么,大家拭目以待!

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