使用Eclipse的JUnit實例
在本節中,我們將展示使用JUnit的一個完整的例子。我們將詳細瞭解如何創建和運行測試,我們將展示如何使用特定的註釋和JUnit斷言。
1. 初始步驟
讓我們創建一個名爲 JUnitGuide 的Java項目. 在 src 文件夾, 我們用鼠標右鍵單擊並選擇 New -> Package, 創造一個新的包名爲: com.yiibai.junit 這裏我們將定位類用於測試。 對於測試類,一個很好的做法就是創建專用於測試的一個新的源文件夾,這樣的類用於測試以及測試類將在不同的源的文件夾。 爲此,右鍵單擊您的項目,選擇 New -> Source Folder, 命名新的源文件夾test 並點擊 Finish.
提示:
或者,可以通過右鍵點擊項目創建一個新的源文件夾,選擇Properties -> Java Build Path, 選擇標籤 Source, 選擇 Add Folder -> Create New Folder, 寫上名稱爲test,然後按 Finish。
可以很容易地看到,在項目中有兩個源文件夾:
還可以創建一個新的包在新創建的測試文件夾,名稱爲 com.javacodegeeks.junit, 測試類不會在默認包中,我們已經準備好了,現在就開始吧!
2. 創建Java類用於測試
右鍵單擊src文件夾並創建一個新的Java類稱爲 FirstDayAtSchool.java. 這個類的公共方法將被測試。
FirstDayAtSchool.java
package com.yiibai.junit;
import java.util.Arrays;
public class FirstDayAtSchool {
public String\[\] prepareMyBag() {
String\[\] schoolbag = { "Books", "Notebooks", "Pens" };
System.out.println("My school bag contains: "
+ Arrays.toString(schoolbag));
return schoolbag;
}
public String\[\] addPencils() {
String\[\] schoolbag = { "Books", "Notebooks", "Pens", "Pencils" };
System.out.println("Now my school bag contains: "
+ Arrays.toString(schoolbag));
return schoolbag;
}
}
3. 創建和運行JUnit測試案例
要爲現有類 FirstDayAtSchool.java 創建一個JUnit測試案例, 在Package Explorer視圖上右鍵單擊並選擇 New → JUnit Test Case. 更改源文件夾,這樣的類將位於 test 源文件夾並確保該標誌 New JUnit4 測試選擇。
然後點擊 Finish. 如果您的項目不包含JUnit庫在classpath中,下面的消息會顯示成爲將JUnit庫添加到類路徑:
下面,有一個名爲:FirstDayAtSchoolTest.java 類,這個測試類的代碼如下所示:
FirstDayAtSchool.java
package com.yiibai.junit;
import static org.junit.Assert.*;
import org.junit.Test;
public class FirstDayAtSchoolTest {
FirstDayAtSchool school = new FirstDayAtSchool();
String\[\] bag1 = { "Books", "Notebooks", "Pens" };
String\[\] bag2 = { "Books", "Notebooks", "Pens", "Pencils" };
@Test
public void testPrepareMyBag() {
System.out.println("Inside testPrepareMyBag()");
assertArrayEquals(bag1, school.prepareMyBag());
}
@Test
public void testAddPencils() {
System.out.println("Inside testAddPencils()");
assertArrayEquals(bag2, school.addPencils());
}
}
現在,我們可以通過右擊運行測試測試類用例,選擇 Run As -> JUnit Test.
程序將輸出類似如下所示:
Inside testPrepareMyBag()
My school bag contains: [Books, Notebooks, Pens]
Inside testAddPencils()
Now my school bag contains: [Books, Notebooks, Pens, Pencils]
在JUnit視圖將沒有失敗或錯誤。如果改變其中一個數組,以便它包含超過預期的元素:
String[] bag2 = { "Books", "Notebooks", "Pens", "Pencils", "Rulers"};
我們再次運行測試類,JUnit視圖將包含一個錯誤:
否則,如果我們再次更改其中一個數組,讓它包含一個不同的元素:
String[] bag1 = { "Books", "Notebooks", "Rulers" };
我們再次運行測試類,JUnit視圖將再一次失敗: