最簡單的范例如下:
1、創建一個TestCase的子類:
package junitfaq;
import java.util.*;
import junit.framework.*;
public class SimpleTest extends TestCase {
public SimpleTest(String name) {
super(name);
}
2、寫一個測試方法斷言期望的結果:
public void testEmptyCollection() {
Collection collection = new ArrayList();
assertTrue(collection.isEmpty());
}
注意:JUnit推薦的做法是以test作為待測試的方法的開頭,這樣這些方法可以被自動找到並被測試。
3、寫一個suite()方法,它會使用反射動態的創建一個包含所有的testXxxx方法的測試套件:
public static Test suite() {
return new TestSuite(SimpleTest.class);
}
4、寫一個main()方法以文本運行器的方式方便的運行測試:
public static void main(String args[]) {
junit.textui.TestRunner.run(suite());
}
}
5、運行測試:
以文本方式運行:
java junitfaq.SimpleTest
通過的測試結果是:
.
Time: 0
OK (1 tests)
Time上的小點表示測試個數,如果測試通過則顯示OK。否則在小點的後邊標上F,表示該測試失敗。
每次的測試結果都應該是OK的,這樣才能說明測試是成功的,如果不成功就要馬上根據提示信息進行修正了。
如果JUnit報告了測試沒有成功,它會區分失敗(failures)和錯誤(errors)。失敗是你的代碼中的assert方法失敗引起的;而錯誤則是代碼異常引起的,例如
ArrayIndexOutOfBoundsException。
以圖形方式運行:
java junit.swingui.TestRunner junitfaq.SimpleTest
通過的測試結果在圖形界面的綠色條部分。
以上是最簡單的測試樣例,在實際的測試中我們測試某個類的功能是常常需要執行一些共同的操作,完成以後需要銷毀所占用的資源(例如網絡連接、數據庫連接,關閉打開的文件等),TestCase類給我們提供了setUp方法和tearDown方法,setUp方法的內容在測試你編寫的TestCase子類的每個testXxxx方法之前都會運行,而tearDown方法的內容在每個testXxxx方法結束以後都會執行。這個既共享了初始化代碼,又消除了各個測試代碼之間可能產生的相互影響。