Junit

咱們在編寫大型程序的時候,須要寫成千上萬個方法或函數,這些函數的功能可能很強大,但咱們在程序中只用到該函數的一小部分功能,而且通過調試能夠肯定,這一小部分功能是正確的。可是,咱們同時應該確保每個函數都徹底正確,由於若是咱們從此若是對程序進行擴展,用到了某個函數的其餘功能,而這個功能有bug的話,那絕對是一件很是鬱悶的事情。因此說,每編寫完一個函數以後,都應該對這個函數的方方面面進行測試,這樣的測試咱們稱之爲單元測試。傳統的編程方式,進行單元測試是一件很麻煩的事情,你要從新寫另一個程序,在該程序中調用你須要測試的方法,而且仔細觀察運行結果,看看是否有錯。正由於如此麻煩,因此程序員們編寫單元測試的熱情不是很高。因而有一個牛人推出了單元測試包,大大簡化了進行單元測試所要作的工做,這就是JUnit4。本文簡要介紹一下在Eclipse3.2中使用JUnit4進行單元測試的方法。程序員

首先,咱們來一個傻瓜式速成教程,不要問爲何,Follow Me,先來體驗一下單元測試的快感!編程

首先新建一個項目叫JUnit_Test,咱們編寫一個Calculator類,這是一個可以簡單實現加減乘除、平方、開方的計算器類,而後對這些功能進行單元測試。這個類並非很完美,咱們故意保留了一些Bug用於演示,這些Bug在註釋中都有說明。該類代碼以下:框架

 

package andycpp;

public class Calculator {
    private static int result; // 靜態變量,用於存儲運行結果
    public void add(int n) {
        result = result + n;
    }
    public void substract(int n) {
        result = result - 1;  //Bug: 正確的應該是 result =result-n
    }
    public void multiply(int n) {
    }         // 此方法還沒有寫好
    public void divide(int n) {
        result = result / n;
    }
    public void square(int n) {
        result = n * n;
    }
    public void squareRoot(int n) {
        for (; ;) ;            //Bug : 死循環
    }
    public void clear() {     // 將結果清零
        result = 0;
    }
    public int getResult() {
        return result;
    }
}

 

第二步,將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點「屬性」,如圖:ide

 


在彈出的屬性窗口中,首先在左邊選擇「Java Build Path」,而後到右上選擇「Libraries」標籤,以後在最右邊點擊「Add Library…」按鈕,以下圖所示:


而後在新彈出的對話框中選擇JUnit4並點擊肯定,如上圖所示,JUnit4軟件包就被包含進咱們這個項目了。

    第三步,生成JUnit測試框架:在EclipsePackage Explorer中用右鍵點擊該類彈出菜單,選擇「New à JUnit Test Case」。以下圖所示:


在彈出的對話框中,進行相應的選擇,以下圖所示:


    點擊「下一步」後,系統會自動列出你這個類中包含的方法,選擇你要進行測試的方法。此例中,咱們僅對「加、減、乘、除」四個方法進行測試。以下圖所示:


函數

以後系統會自動生成一個新類CalculatorTest,裏面包含一些空的測試用例。你只須要將這些測試用例稍做修改便可使用。完整的CalculatorTest代碼以下:單元測試

 

package andycpp;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;

public class CalculatorTest {

    private static Calculator calculator = new Calculator();
    
    @Before
    public void setUp() throws Exception {
        calculator.clear();
    }

    @Test
    public void testAdd() {
        calculator.add(2);
        calculator.add(3);
        assertEquals(5, calculator.getResult());
    }

    @Test
    public void testSubstract() {
        calculator.add(10);
        calculator.substract(2);
        assertEquals(8, calculator.getResult());
    }

    @Ignore("Multiply() Not yet implemented")
    @Test
    public void testMultiply() {
    }

    @Test
    public void testDivide() {
        calculator.add(8);
        calculator.divide(2);
        assertEquals(4, calculator.getResult());
    }
}

 

第四步,運行測試代碼:按照上述代碼修改完畢後,咱們在CalculatorTest類上點右鍵,選擇「Run As à JUnit Test」來運行咱們的測試,以下圖所示:測試

 

運行結果以下:ui

 

 

進度條是紅顏色表示發現錯誤,具體的測試結果在進度條上面有表示「共進行了4個測試,其中1個測試被忽略,一個測試失敗」spa

            至此,咱們已經完總體驗了在Eclipse中使用JUnit的方法。在接下來的文章中,我會詳細解釋測試代碼中的每個細節!.net

相關文章
相關標籤/搜索