一、簡介
JUnit是一個開源的java單元測試框架。在1997年,由 Erich Gamma 和 Kent Beck 開發(fā)完成。這兩個牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(你覺得眼熟一點都不希奇)。
正如常言道:“麻雀雖小,五臟俱全。” JUnit設計的非常小巧,但是功能卻非常強大。
下面是JUnit一些特性的總結:
1) 提供的API可以讓你寫出測試結果明確的可重用單元測試用例
2) 提供了三種方式來顯示你的測試結果,而且還可以擴展
3) 提供了單元測試用例成批運行的功能
4) 超輕量級而且使用簡單,沒有商業(yè)性的欺騙和無用的向導
5) 整個框架設計良好,易擴展
對不同性質的被測對象,如Class,jsp,Servlet,Ejb等,Junit有不同的使用技巧。由于本文的性質,以下僅以Class測試為例。
二、下載
點擊http://www.junit.org可以下載到新版本的JUnit,本文使用的為3.8.1版。至于安裝或者配置之類,你只需要輕松的將下載下來的壓縮包中的jar文件,放到你工程的classpath中可以了。
這樣,你的系統(tǒng)中可以使用JUnit編寫單元測試代碼了(是不是很簡單)!
三、HelloWorld
記得在幾乎每本語言教學書上都能找到HelloWorld這個入門代碼。在這里,我們也從一個簡單到根本不用單元測試的例子入手。這是一個只會做兩數(shù)加減的超級簡單的計算器(小學一年級必備)。代碼如下:
public class SampleCalculator
{
public int add(int augend , int addend)
{
return augend + addend ;
}
public int suBTration(int minuend , int subtrahend)
{
return minuend - subtrahend ;
}
}
將上面的代碼編譯通過。下面是我為上面程序寫的一個單元測試用例:
//請注重這個程序里面類名和方法名的特征
import junit.framework.TestCase;
public class TestSample extends TestCase
{
public void testAdd()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.add(50 , 20);
assertEquals(70 , result);
}
public void testSubtration()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.subtration(50 , 20);
assertEquals(30 , result);
}
}
好了,在DOS命令行里面輸入javac TestSample.java 將測試類編譯通過。然后再輸入 java junit.swingui.TestRunner TestSample 運行測試類,你會看到如下的窗口。
綠色說明單元測試通過,沒有錯誤產生;假如是紅色的,則是說測試失敗了。這樣一個簡單的單元測試完成了.
按照框架規(guī)定:編寫的所有測試類,必須繼續(xù)自junit.framework.TestCase類;里面的測試方法,命名應該以Test開頭,必須是public void 而且不能有參數(shù);而且為了測試查錯方便,盡量一個TestXXX方法對一個功能單一的方法進行測試;使用assertEquals等junit.framework.TestCase中的斷言方法來判定測試結果正確與否。