1肛真、什么是Junit4
JUnit是一個開放源代碼測試框架应媚,用于編寫和運行可重復(fù)的測試媚污。他是用于單元測試框架體系xUnit的一個實例(用于java語言)断医。它包括以下特性:
- 用于測試期望結(jié)果的斷言(Assertion)
- 用于共享共同測試數(shù)據(jù)的測試工具
- 用于方便的組織和運行測試的測試套件
- 圖形和文本的測試運行器
Junit
2、為什么要使用Junit4
3债蓝、編寫測試單元的步驟
- 測試方法上必須使用@Test進(jìn)行修飾
- 測試方法必須使用public void 進(jìn)行修飾,不能待任何的參數(shù)
- 新建一個test源代碼目錄
- 測試類的包名應(yīng)該和被測試類保持一致
- 測試單元中的每個方法必須可以獨立測試盛龄,測試方法間不能有任何的依賴
- 測試類使用Test作為類名的后綴
- 測試方法使用test作為方法名的前綴
4饰迹、測試失敗的情況
- Failure 一般由單元測試使用的方法判斷失敗所引起的,這表示測試點發(fā)現(xiàn)了問題余舶,就是說問題輸出的結(jié)果和我們預(yù)期的不一樣啊鸭。
- error是有代碼異常引起的,它可以產(chǎn)生于測試代碼本身的錯誤匿值,也可以是測試代碼中一個隱藏的bug赠制。
- 測試用力不是用來證明你是對的,而是用來證明你沒有錯挟憔。
5钟些、Junit4常用注解
- @Test:將一個普通方法修飾成一個測試方法。
@Test(expected=XXX.class) 捕獲異常
@Test(timeout=毫秒) 限定時間 - @BeforeClass:修飾的方法會在所有方法被調(diào)用前被執(zhí)行绊谭。而且該方法是靜態(tài)的所以當(dāng)測試類被加載后政恍,接著就會運行它,而且在內(nèi)存中它只會存在一份實例达传,它比較適合加載配置文件篙耗。
- @AfterClass:所修飾的方法通會在所有方法運行結(jié)束后被執(zhí)行迫筑。常用來對資源的清理,如關(guān)閉數(shù)據(jù)庫的鏈接宗弯。
- @Befour:會在每一測試方法被執(zhí)行前運行一次脯燃。
- @After:會在每一個測試方法運行后被執(zhí)行一次。
- @Ignore:所修飾的測試方法會被測試運行器所忽略蒙保。
- @RunWith:可以更改測試運行器辕棚。繼承org.junit.runner.Runner。
6追他、Junit4測試套件
- 測試套件就是組織測試類一起運行的
- 寫一個作為測試套件的入口類坟募,這個類里不包含其他的方法。
- 更改測試運行器Suite.class.
- 將要測試的類作為數(shù)組傳入到Suite.SuiteClasses({})
@RunWith(Suite.class)
@Suite.SuiteClasses({TaskTest1.class,TaskTest2.class,TaskTest3.class})
public class SuiteTest{
.
}
7邑狸、Junit4參數(shù)化設(shè)置
測試一個方法 使用多組數(shù)據(jù) :
- 更改默認(rèn)的測試運行器為 Parameterized.class
- 聲明變量來存放預(yù)期值和結(jié)果值
- 聲明一個返回值為Collection的公共靜態(tài)方法 并用@Parameterized 進(jìn)行修飾
- 為測試類聲明一個帶有參數(shù)的公共構(gòu)造函數(shù)懈糯,并在其中為之聲明變量賦值