在Java測試中處理異常,通常使用JUnit框架進行單元測試
try-catch
語句捕獲異常:@Test
public void testMethod() {
try {
// 調(diào)用可能拋出異常的方法
} catch (Exception e) {
// 對異常進行處理,例如:驗證異常類型、消息等
}
}
assertThrows
方法驗證預期異常:import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
public void testMethod() {
// 驗證方法是否拋出預期的異常類型
assertThrows(ExpectedExceptionType.class, () -> {
// 調(diào)用可能拋出異常的方法
});
}
@Test
注解的expected
屬性來驗證預期異常:import org.junit.Test;
public class MyTest {
@Test(expected = ExpectedExceptionType.class)
public void testMethod() {
// 調(diào)用可能拋出異常的方法
}
}
ExpectedException
規(guī)則(JUnit 4):import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
public class MyTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void testMethod() {
// 驗證方法是否拋出預期的異常類型和消息
thrown.expect(ExpectedExceptionType.class);
thrown.expectMessage("Expected exception message");
// 調(diào)用可能拋出異常的方法
}
}
assertThrows
與Lambda表達式結(jié)合:import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
public void testMethod() {
// 驗證方法是否拋出預期的異常類型和消息
ExpectedExceptionType exception = assertThrows(ExpectedExceptionType.class, () -> {
// 調(diào)用可能拋出異常的方法
});
// 可以進一步驗證異常的屬性,例如消息
assertEquals("Expected exception message", exception.getMessage());
}
根據(jù)你的需求和測試場景,可以選擇最適合的方法來處理Java測試中的異常。