JUnit 單元測試框架為測試異常提供了三種方法:1. 預期異常斷言,允許指定預期引發的異常類型;2. 異常訊息斷言,可以驗證異常是否具有預期訊息;3. 異常起因斷言,用於驗證異常的根本原因。
JUnit 單元測試框架:測試例外的最佳方法
JUnit 是 Java 開發人員廣泛使用的單元測試框架。它提供了各種斷言方法來驗證測試的預期結果。對於測試異常,JUnit 提供了一組專門的方法。
1. 預期異常斷言
@Test(expected = ExceptionClass.class)
批次讓我們指定測試方法中應引發的特定異常類型。如果未引發預期的異常,則測試將失敗。
@Test(expected = NullPointerException.class) public void testNullPointerException() { String str = null; str.toUpperCase(); }
2. 異常訊息斷言
使用assertThrowWithMessage
方法,我們不僅可以驗證是否引發了異常,還可以驗證它的訊息是否與預期一致。
@Test public void testExceptionMessage() { Exception exception = assertThrows(Exception.class, () -> { throw new Exception("Custom Exception"); }); assertEquals("Custom Exception", exception.getMessage()); }
3. 異常起因斷言
使用 assertCause
方法,我們可以驗證引發例外的根本原因(如果有)。
@Test public void testExceptionCause() { Exception cause = new Exception("Cause Exception"); Exception exception = new Exception("Actual Exception", cause); Exception actualCause = assertThrows(Exception.class, () -> { throw exception; }).getCause(); assertEquals(cause, actualCause); }
實戰案例
在以下範例中,我們使用JUnit 測試一個方法,該方法有可能引發ArithmeticException
例外:
public class Calculator { public int divide(int numerator, int denominator) { if (denominator == 0) { throw new ArithmeticException("Cannot divide by zero"); } return numerator / denominator; } } @ExtendWith(SpringExtension.class) public class CalculatorTest { @Test(expected = ArithmeticException.class) public void testDivideByZero() { Calculator calculator = new Calculator(); calculator.divide(10, 0); } }
提示
以上是JUnit單元測試框架:測試異常的最佳方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!