在Java 8和JUnit 5 (Jupiter)中,我们可以这样断言异常。
使用org.junit.jupiter.api.Assertions.assertThrows < / p >
public static <T extends Throwable > T assertThrows(Class<T > expectedType,
可执行可执行文件)< /强> < / p >
断言所提供的可执行文件的执行将抛出expectedType的异常并返回该异常。
如果没有抛出异常,或者抛出了不同类型的异常,则此方法将失败。
如果您不想对异常实例执行额外的检查,只需忽略返回值。
@Test
public void itShouldThrowNullPointerExceptionWhenBlahBlah() {
assertThrows(NullPointerException.class,
()->{
//do whatever you want to do here
//ex : objectName.thisMethodShoulThrowNullPointerExceptionForNullParameter(null);
});
}
import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
void exceptionTesting() {
assertThrows(MyException.class, myStackObject::doStackAction, "custom message if assertion fails...");
// note, no parenthesis on doStackAction ex ::pop NOT ::pop()
}