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