Eclipse JUnit簡單範例


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

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

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


整個工程的結構如下:

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

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):

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

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)