我們在編寫大型程序的時候,需要寫成千上萬個方法或函數(shù),這些函數(shù)的功能可能很強大,但我們在程序中只用到該函數(shù)的一小部分功能,并且經(jīng)過調(diào)試可以確定,這一小部分功能是正確的。但是,我們同時應(yīng)該確保每一個函數(shù)都完全正確,因為如果我們今后如果對程序進行擴展,用到了某個函數(shù)的其他功能,而這個功能有bug的話,那是一件非常郁悶的事情。所以說,每編寫完一個函數(shù)之后,都應(yīng)該對這個函數(shù)的方方面面進行測試,這樣的測試我們稱之為單元測試。傳統(tǒng)的編程方式,進行單元測試是一件很麻煩的事情,你要重新寫另外一個程序,在該程序中調(diào)用你需要測試的方法,并且仔細觀察運行結(jié)果,看看是否有錯。正因為如此麻煩,所以程序員們編寫單元測試的熱情不是很高。于是有一個牛人推出了單元測試包,大大簡化了進行單元測試所要做的工作,這是JUnit4。本文簡要介紹一下在Eclipse3.2中使用JUnit4進行單元測試的方法。
首先,我們來一個傻瓜式速成教程,不要問為什么,F(xiàn)ollow Me,先來體驗一下單元測試的快感!
首先新建一個項目叫JUnit_Test,我們編寫一個Calculator類,這是一個能夠簡單實現(xiàn)加減乘除、平方、開方的計算器類,然后對這些功能進行單元測試。這個類并不是很完美,我們故意保留了一些Bug用于演示,這些Bug在注釋中都有說明。該類代碼如下:
package andycpp;
public class Calculator {
private static int result; // 靜態(tài)變量,用于存儲運行結(jié)果
public void add(int n) {
result = result + n;
}
public void substract(int n) {
result = result - 1; //Bug: 正確的應(yīng)該是 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 : 死循環(huán)
}
public void clear() { // 將結(jié)果清零
result = 0;
}
public int getResult() {
return result;
}
}
第二步,將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點“屬性”,如圖:
在彈出的屬性窗口中,首先在左邊選擇“Java Build Path”,然后到右上選擇“Libraries”標(biāo)簽,之后在右邊點擊“Add Library…”按鈕,如下圖所示:
然后在新彈出的對話框中選擇JUnit4并點擊確定,如上圖所示,JUnit4軟件包被包含進我們這個項目了。
第三步,生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點擊該類彈出菜單,選擇“New à JUnit Test Case”。如下圖所示:
在彈出的對話框中,進行相應(yīng)的選擇,如下圖所示:
點擊“下一步”后,系統(tǒng)會自動列出你這個類中包含的方法,選擇你要進行測試的方法。此例中,我們僅對“加、減、乘、除”四個方法進行測試。如下圖所示: