JUnit 5: How to assert an exception is thrown?
In JUnit 5, you can use the assertThrows
method to assert that an exception is thrown when executing a certain piece of code. Here's an example of how to use it:
First, you need to import the required classes:
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
Now, let's say you have a method called divide
that throws an ArithmeticException
when dividing by zero:
@Test
public void testDivideByZero() {
// Arrange
MyClass myClass = new MyClass();
// Act & Assert
assertThrows(ArithmeticException.class, () -> myClass.divide(10, 0), "Division by zero should throw ArithmeticException");
}
In this example, assertThrows
checks if the lambda expression () -> myClass.divide(10, 0)
throws an exception of type ArithmeticException
. If the exception is thrown as expected, the test will pass; otherwise, it will fail. The optional third argument is a message that will be displayed if the test fails.