1. 什麼事Junit測試
Unit是一個開發源代碼的Java測試框架,用於編寫和運行可重複的測試。他是用於單元測試框架體系xUnit的一個實例(用於java語言)。
2. Junit測試的版本
2.1Juit3.8
在3.8版本的風格下:
1)所有完成測試功能的類要繼承TestCase類(繼承Assert類)。
2)所有要測試的方法都要使用testXXX的命名方式。
3)由TestRunner類來運行測試類中的每一個需要測試的方法。
2.1.1 常用的assert方法
斷言方法 |
描述 |
assertEquals |
斷言期望值和測試後的實際值相等 |
assertTrue/assertFalse |
斷言測試後實際的boolean值是true/fasle |
assertNull/assertNotNull |
斷言測試後實際的值爲null |
assertSame/assertNotSame |
斷言期望值和測試後的實際值是否指向同一個對象 |
注意:在開發的過程中,建議採用測試先行的開發方式
2.1.2 一個簡單的Junit測試程序(測試返回值是否正確)
1.建立一個接口以及一個它的實現類如下
public interface Compute {
public int add(int first,int second);
public int sub(int first,int second);}
public class ComputeImpl implements Compute {
public int add(int first, int second) {
return 0;}
public int sub(int first, int second) {
return 0;}}
2.建立單元測試文件TestCompute.java,在添加測試方法testAdd()完成對ComputeImpl類的測試。
public class TestIComputer extends TestCase {
protected void setUp() throws Exception {
System.out.println("setUp... ");
}
protected void tearDown() throws Exception {
System.out.println("tearDown... ");
}
public void testAdd(){
System.out.println("testAdd... ");
Compute c=new ComputeImpl ();
assertEquals(0, c.add(-3,3));
assertEquals(-1, c.add(2,-3));
assertEquals(5, c.add(2,3));
}}
3、編譯文件,運行JUnit框架完成測試。
注:Junit框架開始運行測試用例時,運行順序是setUp()()、testXXX()、tearDown()
2.2 Junit4.4
JUnit 4 使用 Java 5 中的註解(annotation),JUnit 4 常用annotation 介紹
@Before:初始化方法
@After:釋放資源
@Test:測試方法,在這裏可以測試期望異常和超時時間
@Ignore:忽略的測試方法
@BeforeClass:針對所有測試,只執行一次,且必須爲static void
@AfterClass:針對所有測試,只執行一次,且必須爲static void
一個JUnit 4 的單元測試用例執行順序爲:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一個測試方法的調用順序爲:
@Before –> @Test –> @After