Eclipse JUnit簡單示例

在本節中,我們將看到一個簡單的JUnit例子。

先創建一個工程,名稱爲:CalculateTest,並在這個工程上點擊右鍵,選擇:Build Path -> Add Library -> JUnit ...,如下圖所示:

Eclipse

選擇 JUnit 的庫版本爲:JUnit 4,如下圖所示:

Eclipse

整個工程的結構如下:

Eclipse

首先,我們將介紹一個測試類:

Calculate.java

package com.yiibai.junit;

public class Calculate {

public int sum(int var1, int var2) {
    System.out.println("相加的值是: " + var1 + " + " + var2);
    return var1 + var2;
}

}

在上面的代碼中,我們可以看到,類有一個公共的方法sum(), 它得到輸入兩個整數,將它們相加並返回結果。在這裏,我們將測試這個方法。爲了這個目的,我們將創建另一個類包括方法,將測試之前的類(在此情況下,我們只有一個方法進行測試)中每一個的方法。這是使用的最常見的方式。當然,如果一個方法非常複雜且要擴展,我們可以在一個以上的試驗方法來測試這一複雜方法。創建測試用例的詳細信息將顯示在下面的部分。下面,有一個類是:CalculateTest.java,它具有我們的測試類的角色的代碼:

CalculateTest.java

package com.yiibai.junit;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculateTest {

Calculate calculation = new Calculate();
int sum = calculation.sum(2, 5);
int testSum = 7;

@Test
public void testSum() {
    System.out.println("@Test sum(): " + sum + " = " + testSum);
    assertEquals(sum, testSum);
}

}

讓我們來解釋一下上面的代碼。首先,我們可以看到,有一個@Test的註解在 testSum()方法的上方。 這個註釋指示該公共無效(public void)方法它所附着可以作爲一個測試用例。因此,testSum()方法將用於測試公開方法 sum() 。 我們還可以觀察一個方法 assertEquals(sum, testsum)。 assertEquals ([String message], object expected, object actual) 方法持有兩個對象作爲輸入,並斷言這兩個對象相等。

如果要運行測試類,右鍵點擊測試類,並選擇 Run As -> Junit Test, 該程序的輸出將類似於如下:

相加的值是: 2 + 5
@Test sum(): 7 = 7

若要查看JUnit測試的實際結果,Eclipse IDE提供了JUnit的窗口,它顯示了測試的結果。 在這種情況下測試成功,JUnit 窗口不顯示任何錯誤或失敗,因爲我們可以在下面的圖片中看到(Errors 0):

Eclipse

現在,如果我們改變這一行的代碼:

int testSum = 10;

使整數待測試不相等,則輸出將是:

相加的值是: 2 + 5
@Test sum(): 7 = 10

在JUnit窗口,有一個錯誤將出現,並且會顯示這樣的信息:

java.lang.AssertionError: expected: but was:
at com.yiibai.junit.CalculateTest.testSum(CalculateTest.java:16)