您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit及其相關(guān)的單元測試技術(shù)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/8/2 10:40:17 ] 推薦標(biāo)簽:

  在實(shí)際的工作中,很多項(xiàng)目都沒有寫單元測試用例。寫單元測試用例常常是程序員十分厭倦的一個(gè)項(xiàng)目活動,很多人覺得沒有必要、浪費(fèi)時(shí)間。所有這些都是因?yàn)闆]有認(rèn)識到測試的重要性:測試能夠使我們盡量早的發(fā)現(xiàn)程序的bug,一個(gè)bug被隱藏的時(shí)間越長,修復(fù)這個(gè)bug的代價(jià)越大。在《快速軟件開發(fā)》一書中已引用了大量的研究數(shù)據(jù)指出:后才修改一個(gè)bug的代價(jià)是在bug產(chǎn)生時(shí)修改它的代價(jià)的10倍。在現(xiàn)代軟件開發(fā)過程中,不管是xp還是rup都是十分重視單元測試,已經(jīng)把單元測試作為貫穿整個(gè)開發(fā)周期的一項(xiàng)重要的開發(fā)活動。單元測試如此重要,那么怎樣寫好單元測試用例呢?這需要了解Junit及其相關(guān)的測試工具了。

  1. Junit簡介:

  1.1 內(nèi)容摘要

  Junit是由 Erich Gamma 和 Kent Beck 編寫的一個(gè)回歸測試框架(regressiontestingframework),供Java開發(fā)人員編寫單元測試之用。Junit測試是程序員測試,即所謂白盒測試。下面我們以一個(gè)簡單的例子來介紹如何使用Junit4同Junit3編寫測試用例:

  先寫個(gè)簡單的被測試類:

  public Class XXXX{

  public String hello(){

  return hello;

  }

  }

  對于這個(gè)類的用junit3編寫測試用例:

  import junit.framework.TestCase;

  public Class XXXXTest extends TestCase{

  public void testHello(){

  asssertEqual(new XXXX().Hello(),hello);

  }

  }

  用junit4編寫測試用例:

  import static org.junit.framework.assertEqual;

  import org.junit.Test;

  public Class XXXXTest{

  @Test

  public void helloTest(){

  asssertEqual(new XXXX().Hello(),hello);

  }

  }

  從上面例子我們對Junit3和Junit4有了一個(gè)初步的印象,下面我們重點(diǎn)介紹Junit4與Junit3的主要區(qū)別。

  1.2 Junit4與Junit3的主要區(qū)別

  1.2.1 Junit4引入了java 5.0的注釋技術(shù):

  這兩個(gè)版本大的區(qū)別在JUnit3.x中測試必須繼承TestCase,并且每個(gè)方法名必須以test開頭。比如:testMethod1()而在JUnit4.x中不必繼承TestCase,采用了注解的方式。只要在測試的方法上加上注解@Test即可,從而不必再遵循以前的一些顯式約定和反射定位測試;在JUnit4.x中如果繼承了TestCase,注解不起作用了。并且有很重要的一點(diǎn)是在JUnit4.x中繼承了TestCase后,在OutLine視圖中測試單個(gè)方法時(shí),結(jié)果整個(gè)類都run了。還有一點(diǎn)是,在3.x中需要實(shí)現(xiàn)setUp和tearDown方法,而在4.x中無需這樣,可以自定義需要在測試前和測試后的方法,在方法前加上@before,@after可以了。所以在JUnit4.x不必繼承TestCase用注解即可對單個(gè)方法進(jìn)行測試。

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