您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
全面認(rèn)識JUnit 4的特征
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/1/4 15:58:25 ] 推薦標(biāo)簽:

  十一、 工具集成功能

  當(dāng)我寫本文時,JUnit 4在IDE方面的集成還不是很理想。事實(shí)上,如果你試圖運(yùn)行我們剛才看到的那個測試類的話,它們無法工作在任何IDE環(huán)境中,因?yàn)樗鼈儾荒鼙蛔R別為測試類。為了向前兼容性起見,JUnit 4發(fā)行中帶有一個適配器(junit.framework.JUnit 4TestAdapter),你必須把它使用于一個suite()方法中。下面是你必須添加到每個類中的代碼;這樣以來,它們才能為各種IDE,Ant以及JUnit 3.8中的文本運(yùn)行機(jī)所識別:

public static junit.framework.Test suite() {
 return new JUnit 4TestAdapter(CalculatorTest.class);
}

  (一) Intellij IDEA

  IDEA 5并沒有集成JUnit 4。沒有辦法,我們只好等待IDEA 6中實(shí)現(xiàn)這一集成了。在這個例子中,我使用了較早的發(fā)行版本(Demetra build 5321);但是,參數(shù)化測試用例仍不能工作。圖1展示了這個CalculatorTest的執(zhí)行情況(被忽略的測試以一個不同的圖標(biāo)標(biāo)志)。

圖1.IDEADemetra僅能運(yùn)行CalculatorTest。

圖2.Eclipse 3.2RC7能夠運(yùn)行測試集類AllCalculatorTests。

  (二) Eclipse

  我現(xiàn)在使用的是Eclipse的3.2 RC7版本。雖然它還不是一個穩(wěn)定發(fā)行版本,但是其與JUnit 4的集成優(yōu)于IDEA。上圖2展示了在運(yùn)行AllCalculatorTests類時你能看到的結(jié)果。

  如你所見,該參數(shù)化測試用例(SquareTest)被描述為7個單獨(dú)的測試。

  (三) Ant集成

  junit任務(wù)當(dāng)前僅僅支持JUnit 3.8風(fēng)格測試;這也是說,你還必須用一個JUnit 4 TestAdapter來包裝你的JUnit 4測試;這樣,它們才能在Ant中運(yùn)行。這個<junit>任務(wù)與其在JUnit 3.8中用法一樣:

<!-- Test -->
<target name="test" depends="compile">
<junit fork="yes" haltonfailure="yes">
<test name=" JUnit 4.AllCalculatorTests"/>
<formatter type="plain" usefile="false"/>
<classpath refid="classpath"/>
</junit>
</target>

  十二、 結(jié)論

  有很長一段時間,JUnit簡直成了事實(shí)上的單元測試框架標(biāo)準(zhǔn)。但是,近來,這個框架似乎無大"動靜":沒有重要的發(fā)行版本,沒有引人注目的新特征出現(xiàn)。這可能是為什么其它測試框架,例如Test-NG開始逐漸占居測試框架市場統(tǒng)治地位的原因。

  隨著這個新版本的發(fā)行,JUnit又出現(xiàn)了新的轉(zhuǎn)機(jī)。如今,它提供了許多新的API,而且現(xiàn)在還使用注解,所以使開發(fā)測試用例更為容易。事實(shí)上,該JUnit開發(fā)者已經(jīng)開始考慮新的未來的注解問題。例如,你可以在一個依賴于前提(舉例來說,你需要在線地執(zhí)行這個測試)的測試用例上添加一個@Prerequisite注解;或者添加一個能夠指定重復(fù)次數(shù)及時限(舉例來說,重復(fù)測試5次以確保真正出現(xiàn)了一個時限問題)的@Repeat注解;或者甚至在@Ignore注解上添加一個平臺參數(shù)(舉例來說,@Ignore(platform=macos),這將只有你在一個MacOS平臺上運(yùn)行時才忽略一個測試)。從本文中你能看到,JUnit的未來依然燦爛輝煌。

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