📜  jupiter spring boot 预期抛出的测试 - Java (1)

📅  最后修改于: 2023-12-03 15:32:26.678000             🧑  作者: Mango

Jupiter Spring Boot 预期抛出的测试 - Java

Jupiter 是一款用于 Java 的测试框架,它基于 JUnit 5 并提供了 JUnit 5 所不支持的一些功能。其中包括预期抛出异常的测试。

在使用 Jupiter 进行 Spring Boot 测试时,我们有时需要对方法的异常情况进行测试。Jupiter 提供了一个注解 org.junit.jupiter.api.Assertions.assertThrows(),它可以用于测试方法是否会抛出指定的异常。

使用 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() 可以方便地测试可能抛出异常的方法,避免程序出现不可预料的异常情况。