📅  最后修改于: 2023-12-03 15:32:26.678000             🧑  作者: Mango
Jupiter 是一款用于 Java 的测试框架,它基于 JUnit 5 并提供了 JUnit 5 所不支持的一些功能。其中包括预期抛出异常的测试。
在使用 Jupiter 进行 Spring Boot 测试时,我们有时需要对方法的异常情况进行测试。Jupiter 提供了一个注解 org.junit.jupiter.api.Assertions.assertThrows()
,它可以用于测试方法是否会抛出指定的异常。
具体使用方式如下:
@Test
public void test() {
Assertions.assertThrows(ExceptionClass.class, () -> {
// 调用可能抛出异常的方法
});
}
其中,ExceptionClass
是你期望被抛出的异常类型,() -> {...}
是一个 Lambda 表达式,用于执行可能抛出异常的方法。
如果测试的方法没有抛出异常,assertThrows() 方法会抛出一个 AssertionFailedError
,测试失败。如果测试的方法抛出了指定的异常,测试就会通过。
下面是一个示例,我们来测试一个可能抛出异常的方法:
public class TestService {
public void methodMayThrowException() throws Exception {
throw new Exception("Test Exception");
}
}
我们在测试类中使用 Assertions.assertThrows()
来测试这个方法:
public class TestServiceTest {
@Test
public void testMethodMayThrowException() {
TestService service = new TestService();
Assertions.assertThrows(Exception.class, () -> {
service.methodMayThrowException();
});
}
}
使用 Assertions.assertThrows()
可以方便地测试可能抛出异常的方法,避免程序出现不可预料的异常情况。