JUnit概述及一個簡單例子

只爭朝夕^ω^)↗發表於2018-08-10

JUnit概述及一個簡單例子

原文地址:https://blog.csdn.net/zen99t/article/details/50561136 有1-4部分,這裡只引用了一部分
1.概述
1.1 什麼是JUnit
①JUnit是用於編寫可複用測試集的簡單框架,是xUnit的一個子集。xUnit是一套基於測試驅動開發的測試框架,有PythonUnit、CppUnit、JUnit等。
②Junit測試是程式設計師測試,即所謂白盒測試,因為程式設計師知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。
③多數Java的開發環境都已經整合了JUnit作為單元測試的工具,比如Eclipse。
1.2 為什麼要使用測試工具
①測試框架可以幫助我們對編寫的程式進行有目的地測試,幫助我們最大限度地避免程式碼中的bug,以保證系統的正確性和穩定性。
②很多人對自己寫的程式碼,測試時就簡單寫main,然後sysout輸出控制檯觀察結果。這樣非常枯燥繁瑣,不規範。缺點:測試方法不能一起執行,測試結果要程式猿自己觀察才可以判斷程式邏輯是否正確。
③JUnit的斷言機制,可以直接將我們的預期結果和程式執行的結果進行一個比對,確保對結果的可預知性。

1.3 相關連結
JUnit官網:http://junit.org/
JUnit的jar包下載:https://github.com/junit-team/junit/wiki/Download-and-Install
2.簡單例子快速入門
2.1 建立簡單業務類
使用Eclipse建立一個專案,匯入JUnit相關包,因為eclipse整合了JUnit框架,所以可以直接右鍵專案,選擇Build Path → 點選Add Libraries → 選擇JUnit → 點選Next,選擇JUnit版本,然後Finish。(其實也可以下載jar包作為使用者庫來新增)
編寫一個簡單的計算類:Calcuate類

package jtzen9.util;
/**
 * 實現加減乘除的簡單計算類
 * @author Zen9
 *
 */
public class Calcuate {
    public int add(int a,int b){
        return a+b;
    }
    public int subtract(int a,int b){
        return a-b;
    }
    public int multiply(int a,int b){
        return a*b;
    }
    public int divide(int a,int b){
        return a/b;
    }
}

2.2 建立測試類
①右鍵Calcuate類,new 一個 JUnit Test Case:
這裡寫圖片描述
②彈出的對話方塊,暫時不做修改,直接點選next:(這樣建立的測試類會在同一個包下,暫時不管測試類和業務類的隔離)
這裡寫圖片描述
③勾選要測試的方法,點選Finish:
這裡寫圖片描述
2.3 修改生成的測試類程式碼
上面步驟生成的測試類只包含測試方法的模板,並沒有具體的測試細節,修改成如下:(其中有比較多的重複程式碼,暫時不管;並將減法的測試設為有問題)

package jtzen9.util;
import org.junit.Assert;
import org.junit.Test;
public class CalcuateTest {
    Calcuate calcuate;

    @Test
    public void testAdd() {
        calcuate = new Calcuate();
        int result = calcuate.add(2, 3);
        Assert.assertEquals("加法有問題", 5, result);
        /*
         * "加法有問題":期望值和實際值不一致時,顯示的資訊
         * 5 :期望值
         * result :實際值
         */
    }

    @Test
    public void testSubtract() {
        calcuate = new Calcuate();
        int result = calcuate.subtract(12, 2); 
        Assert.assertEquals("減法有問題", 10000, result); //故意設定減法期望值為10000
    }

    @Test
    public void testMultiply() {
        calcuate = new Calcuate();
        int result = calcuate.multiply(2, 3);
        Assert.assertEquals("乘法有問題", 6, result);
    }

    @Test
    public void testDivide() {
        calcuate = new Calcuate();
        int result = calcuate.divide(6, 3);
        Assert.assertEquals("除法有問題", 2, result);
    }
}

2.4 執行結果
右鍵測試類,選擇Run As , JUnit Test,結果如下:
這裡寫圖片描述
總共有4個測試方法,執行了4個方法;其中failures有1個,即有一個方法的輸出結果跟我們的預期不一樣。

相關文章