Junit是一個開源框架,可以寫重複的自動化測試來確保代碼的正確。它能夠提供:
(1)期望結果測試告警
(2)共享常用的測試數據
(3)易於組織和運行測試的測試套件
(4)圖形化的測試運行
它可以被用來測試:
(1)一個完成的對象;
(2)一個對象的一部分--一個方法或者是一些相關聯的方法;
(3)幾個對象之間的關聯
1、Junit的簡單例子
有下面一個類:
package com.junit.calc;
public class Calculate{
public int sum(int val1, int val2){
System.out.println("adding value: " + val1 + "+" + val2);
return val1 + val2;
}
}
包含一個方法sum,接受兩個int類型的變量,並返回兩個變量的和。
現在用Junit對其進行測試,代碼如下:
import com.junit.calc.Calculate;
import junit.framework.Assert;
import org.junit.Test;
public class CalculateTest{
Calculate calc = new Calculate();
int sum = calc.sum(2, 8);
int testSum = 7;
@Test
public void testSum(){
System.out.println("@test sum" + sum + "=" +testSum);
Assert.assertEquals(testSum, sum);
}
}
首先是有一個@Test註解,這個註解表明了testSum方法是用來測試的,然後是
Assert.assertEquals(testSum, sum);
這個方法用來對比期望和實際的值,當兩個值相等時不會告警,輸出兩個值告警,當兩個值不相等時,告警,並中斷程序執行。
2、Junit的註解介紹
(1)@Test 該註解表明了它所附屬的public void 方法是一個測試實例。
(2)@Before 該註解表明了它所附屬的方法必須在測試之前執行,以便執行一些測試前的預處理。
(3)@BeforeClass 該註解表明它所附屬的靜態方法只能執行一次,並且只能在所有測試之前執行。
(4)@After 該註解表明它所附屬的方法在每一個測試完成之後都會執行,用於重置一些測試之後的變量。
(5)@AfterClass 該註解表明它所附屬的方法在所有測試完成之後執行。
3、Junit assertions
Junit提供了一系列的Assert方法, 下面進行簡單介紹。
(1)assertEquals 斷言兩個值是相等的,其中的兩個值一個指的是期望值,一個指的是實際值。值可以是int boolen short long byte char 或者是object類型。
(2)assertTrue 斷言判斷條件是否爲真
(3)assertFalse 斷言判斷條件是否爲假
(4)assertNull 斷言一個對象是空的
(5)assertNotNull 斷言一個對象不是空的
(6)assertSame 斷言兩個對象引用指向的是同一個對象
(8)assertNotSame 斷言兩個對象引用指向的是不同對象
(9)assertArrayEquals 斷言兩個數組是相等的