JUnit5 是一个流行的 Java 测试框架,用于编写和执行单元测试。在 JUnit5 中,你可以使用 assertThrows
方法来验证在执行过程中是否引发了特定的异常。
assertThrows
是 JUnit5 提供的一个断言方法,用于检查代码块是否抛出了预期的异常。如果代码块没有抛出异常,或者抛出了不同类型的异常,测试将失败。
assertThrows
明确指定了期望的异常类型,使得测试意图更加清晰。assertThrows
方法有两种重载形式:
assertThrows(ExpectedException.class, Executable executable)
assertThrows(ExpectedException.class, String message, Executable executable)
当你需要验证某个方法在特定条件下是否抛出异常时,可以使用 assertThrows
。例如,验证一个无效输入的方法是否抛出 IllegalArgumentException
。
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
public class ExampleTest {
@Test
public void testException() {
// 验证当输入为负数时,calculateSquareRoot 方法是否抛出 IllegalArgumentException
assertThrows(IllegalArgumentException.class, () -> {
ExampleClass.calculateSquareRoot(-1);
});
}
}
class ExampleClass {
public static double calculateSquareRoot(double number) {
if (number < 0) {
throw new IllegalArgumentException("Number must be non-negative");
}
return Math.sqrt(number);
}
}
通过使用 assertThrows
,你可以有效地验证代码在特定条件下的异常行为,从而提高代码的健壮性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云