天天看點

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

本文是在前人的基礎上完善而成http://blog.csdn.net/andycpp/article/details/1327147

由于eclipse開發工具內建了JUnit,是以在eclipse中無需下載下傳和安裝,直接将JUnit4單元測試包引入這個項目中便可使用。

第一步:在eclipse中建立一個項目:JUnitTestProject,編寫一個待測類:Calculator。項目結構如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

Calculator類中的代碼為:

package com.edward.junit;

public class Calculator {
	 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) throws Exception
	    {
	    	if(b==0){
	    		throw new Exception("除數不能為0");
	    	}
	        return a / b;
	    }
}
           

第二步:将JUnit單元測試包引入這個項目:選中項目名JUnitTestProject,右鍵彈出菜單中選擇最後一項Properties(屬性),在彈出的對話框中依次選擇:Java Build Path /Libraries/Add Library…

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

點選Add Library...後,彈出的對話框,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

選擇JUnit,點選Next,進入JUnit Library界面,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

選擇JUnit4後,點選Finish。可以看到JUnit4已經添加到Libraries中。

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

點選OK,完成JUnit4單元測試包的導入,會發現JUnit4出現在項目清單中。

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

第三步,生成JUnit測試架構:采用并行樹的方式放置測試代碼,保證測試代碼與被測代碼的獨立性,是以首先在項目目錄下,建立檔案test:項目名右鍵new再選擇SourceFolder,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

在彈出的對話框中,Folder name處,輸入檔案名:test。如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

點選Finish,會發現項目工程的結構如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

項目名JUnitTestProject右鍵,選擇new,再選擇JUnit Test Case,若沒有,則選擇Other…,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

選擇Java目錄下,JUnit目錄下,JUnit Test Case彈出對話框,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

點選(1)處,在彈出的對話框中,将存放目錄更改為test,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

在(2)處輸入類名CalculatorTest 點選(3)處,指定待測類的類名,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

其他地方預設即可,點選Next, 系統會自動列出待測類中包含的方法,選擇你要進行測試的方法(僅對圖中四個方法add、subtract、multiply、divide進行測試),如圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

點選Finish,系統會自動生成一個新類CalculatorTest,裡面包含一些空的測試方法。隻需要将這些測試方法稍作修改即可使用,項目工程的結構,如下圖:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

測試類CalculatorTest中的代碼為:

package com.edward.junit;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {
private Calculator calculator = null;//一、建立被測對象
	@Before
	public void setUp() throws Exception {
		//生成成員變量執行個體
		 calculator = new Calculator();//二、初始化被測對象
	}
	//三、構造測試方法
	@Test
	public void testAdd() {
		int result=calculator.add(1,2);//四、調用被測方法,取得方法的傳回值或系統狀态的變化
		//判斷方法的傳回結果                               //五、創“建期待結果”即:第一個參數期望值,
		assertEquals(3,result);//六、調用合适的Assert方法
	}//第一個參數是期望值,第二個參數是要驗證的值;

	@Test
	public void testSubtract() {
		 int result = calculator.subtract(1, 2);
		 assertEquals(-1, result);
	}

	@Test
	public void testMultiply() {
		int result = calculator.multiply(2, 3);
		assertEquals(6, result);
	}

	@Test
	public void testDivide() {
		int result = 0;
        try {
			result = calculator.divide(12, 3);
		} catch (Exception e) {
			e.printStackTrace();
			//如果抛出異常,證明測試失敗,沒有通過,沒通過的測試計數在Failures中、
			fail();//如果不加這一會,程式進入到catch後,無法判斷其失敗。
		}
        // 判斷方法的傳回結果
        assertEquals(4, result);// 第一個參數是期望值,第二個參數是要驗證的值
	}
}
           

第四步,運作測試代碼,按照上述代碼修改完畢後,在CalculatorTest類上點右鍵,選擇“RunAs / JUnit Test”來運作我們的測試,如下圖所示:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

結果運作如下圖所示:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

若待測類中存在bug,比如對Calculator類中的add( )方法和subtract( )做以下更改:

public int add(int a, int b)
	    {
	        return a - b;//此處存在bug,正确的代碼應該是a + b;
	    }
           
public int subtract(int a, int b)
	    {
	        return a + b;//此處存在bug,正确的代碼應該是a - b;
	    }
           

重複第四步,運作結果如下:

在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇
在eclipse開發工具中使用JUnit4進行單元測試詳解(一)入門篇

進度條顯示為褐色,表示測試發現錯誤,具體測試結果在對話框中均勻展現:總共運作了4個測試Runs:4/4;測試類運作正常未發現問題Error:0;發現2處測試失敗Failures:2。