首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JUnit 4.0 實戰體驗:註解驅動的測試新時代

     編輯:Java 相關知識

從命名慣例到註解驅動

JUnit 3 靠 test* 命名慣例與反射發現測試;JUnit 4 改用 @Test 註解,方法命名完全自由:

@Test public void addition() { ... }

無需繼承 TestCase,搭配 static import 讓斷言呼叫更簡潔:

import static org.junit.Assert.assertEquals;
public class AdditionTest {
    @Test public void addition() { assertEquals(2, 1+1); }
}

生命週期註解:@Before、@After、@BeforeClass、@AfterClass

  • @Before / @After:每個測試前後執行,可多個、命名自訂、支援繼承鏈自動調用(父類別優先)。
  • @BeforeClass / @AfterClass:類別層級一次性初始化/清理(需 static),適合昂貴資源(資料庫連線、大型資料結構)。

異常測試大幅簡化

舊寫法需 try-catch-fail;新語法:

@Test(expected = ArithmeticException.class)
public void divideByZero() { int n = 2 / 0; }

若需驗證例外細節(訊息、原因)仍須用傳統方式。

其他實用特性

  • @Ignore:暫時停用測試,報告顯示「I」而非失敗。
  • @Test(timeout=500):逾時自動失敗,防止網路/效能測試阻塞整組測試。
  • 新增陣列比較 assertEquals(Object[], Object[])。

取捨與相容性

  • 移除 GUI 測試執行器(依賴 Eclipse 等 IDE 整合)。
  • 不再區分 Failure(斷言失敗)與 Error(非預期例外)。
  • 無 suite(),改用可變參數傳遞測試類別。
  • 雙向相容:JUnit 4 執行器可跑 JUnit 3 測試;JUnit 3 環境可用 JUnit4TestAdapter 包裝跑 JUnit 4 測試(但需 Java 5+)。

建議

Java 5 專案應盡快遷移;Java 1.4 專案維持 JUnit 3.8。JUnit 4 以註解簡化測試撰寫,降低門檻,鼓勵更多開發者撰寫測試。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved