閱讀295 返回首頁    go 阿裏雲 go 技術社區[雲棲]


java中Junit單元測試

Junit元測試

單元測試(junit testing),是指對軟件中的最小可測試單元進行檢查和驗證。Java裏單元指一個類。

JUnit ,是一個開源的Java單元測試框架,是 Java的標準單元測試庫,是非常重要第三方 Java 庫,由 Kent Beck 和 Erich Gamma 開發。

Junit作為一個軟件測試的工具,JUnit可以不破壞java原代碼,使用方便,添加快捷,代碼量少,可視化的測試。

JUnit單元測試步驟:

1.導入包junit測試包:JUnit測試版本,3.81版,4.0版,導入對應的jar包;

2.寫一個類擴展(繼承)TestCase;
3.在需要測試的方法名前加test生成新的測試方法;
4.運行測試,用斷言(assert***)的方法測試成功(顯示綠色)或失敗(顯示紅色),或者自己判斷結果正確與否。

 Unit3.81與JUnit4.0區別:
1.在 JUnit 4 中,測試是由 @Test 注釋來識別的;
2.Unit 3.81 測試運行程序時會在運行每個測試之前自動調用 setUp() 方法,在JUnit4.0中,要用 @Before 注釋;
3.在 JUnit 3.81 中,測試運行程序時會在運行每個測試之前自動使用 tearDown() 方法清除消耗的資源,在JUnit4.0中,用 @After 注釋。

注意:如果需測試的方法沒有返回值,隻能測試其過程。

 JUnit4新特性:
1.屬於類範圍的 setUp()方法 和 tearDown() 方法,任何用 @BeforeClass 注釋的方法都將在該類中的測試方法運行之前運行一次,而任何用 @AfterClass 注釋的方法都將在該類中的所有測試都運行之後運行一次;
2.異常測試:編寫拋出異常的代碼,並使用注釋來聲明該異常是預期的;
3.在需要高效率的測試中,有些代碼測試你認為可以跳過,這類測試可以被注釋為 @Ignore

4.時間測試可以用超時參數來注釋,如果測試的運行時間超過指定的毫秒數,測試失敗。 

5.增加兩個新的斷言方法:

(1)public static void assertEquals(Object[] expected, Object[] actual)
(2)public static void assertEquals(String message, Object[] expected, Object[] actual) 這兩個方法用來比較數組:如果數組長度相等且對應的元素相同,則這兩個數組相等,否則不等,也考慮了數組為空的情況。

junit類(Mul)單元測試:

package com.myhome;

public class Mul{
public int mul(int x,int y) {
    public int mul(int x,int y) {
        return x*y;
    }
    public double divide(double x,double y){
        return x/y;
    }
}

用myeclipse集成開發環境添加jar包和junit測試支持:

 

1.如果沒有就在new菜單最下邊Other……中(或Ctrl+N),輸入junit選擇JUnit Test Case單元測試:


2.選擇JUnit 3 Test測試:


3.選擇要測試的方法:


4.此時會自動導入jar包(junit3或者junit4需要的jar包),


5.程序目錄結構:

6.此時的測試類為:

package com.myhome.test;

import junit.framework.TestCase;

public class MulTest extends TestCase {

    public void testMul() {
        fail("Not yet implemented");
    }

    public void testDivide() {
        fail("Not yet implemented");
    }

}

測試內部方法體:

    public void testMul() {
        Mul mul = new Mul();
        int res = mul.mul(2, 4);
        System.out.println(res);
    }

    public void testDivide() {
        Mul mul = new Mul();
        double res = mul.divide(8.0, 2.0);
        assertEquals(4.0, res);
    }

效果圖:

最後更新:2017-04-04 07:03:36

  上一篇:go java實現斷點續傳的原理
  下一篇:go Ubuntu下載地址