在一個項目中,程序員天天的工做無非是,將今天須要作得事情從svn服務器中checkout下來,而後運行一遍單元測試,以後開始編寫代碼,下班時,在運行一次單元測試,而後提交代碼,周而復始。java
在一些小公司裏,可能並非那麼規範,因此也可能不會用到junit,可是大部分比較正規的軟件仍是必須的,咱們要作的就是,使本身更專業,作事更流程化、規範化,這纔是你要去往的方向。程序員
企業開發一款軟件,通常要經歷一下幾個階段的測試,單元測試、模塊測試、集成測試、壓力測試等。測試的內容至關之多,這裏咱們就從單元測試開始。服務器
由於如今主要使用的仍是junit4,因此主要講junit4,下載地址:http://sourceforge.net/projects/junit/ 使用junit的基本原則是:eclipse
一、導入junit的jar,不建議直接使用eclipse中所提供的包。svn
二、在src目錄下編寫服務代碼工具
三、建立測試類單元測試
基本原則: 一、在eclipse中建立一個source folder命名爲test測試
二、建立一個測試類所在的包,包的名稱和測試的類一致。ui
四、Junit3和Junit4二者之間的區別是很是明顯的google
在Junit3中,若是某個類須要是測試類,必須將其繼承於TestCase, 若是某個方法須要是測試方法,必須讓這個方法經過testXXX開頭,在junit3中,若是但願指定某個測試方法運行以前運行某個初始化方法,這個方法的名稱必須是setUp,若是但願在某個測試方法運行以後運行某個釋放資源的方法,這個方法的名稱必須是teadDown
在Junit4中,一個POJO類就是一個測試類,測試方法經過@Test來標識,初始化方法經過@Before,釋放資源的方法經過@After來標註。可是爲了讓Junit4中的測試類在Junit3中也可使用,習慣與把初始化方法命名爲setUp, 釋放資源的方法命名爲tearDown,測試方法也一樣以test開頭。
五、如何使用斷言
在junit4中提供了一個Assert的類,這個類中有大量的方法進行斷言處理,在junit3中因爲繼承了TestCase,這個TestCase中提供了大量的assert方法
junit擴展工具hamcrest
下載地址:https://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-1.3.zip
hamcrest能夠有效增長junit的測試能力,用一些相對通俗的語言來進行測試
要使用junit中的assertThat來進行斷言
第一個參數表示實際值,第二個參數表示hamcrest的表達式
特別注意:若是使用junit4.10,必須把hamcrest的jar包移到junit的jar以前,不然,組合條件allOf,anyOf都會拋出異常。
組合多個測試類,同時測試使用TestSuite
package com.wp.util; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ TestA.class, TestB.class, TestCulcuate.class }) public class TestSuite { /* * 測試原則: * 一、建議建立一個專門的source folder --> test來編寫測試類代碼 * 二、測試類的包應該保持和須要測試的類一致 * 三、測試單元中的每個測試方法都必須能夠獨立執行,沒有順序 */ }
基本結構就是上面的樣子。