Назад к вопросам
Junior — Middle
60
Каким образом можно подтвердить, что при выполнении теста в JUnit выбрасывается ожидаемое исключение?
Ответ от нейросети
sobes.tech AI
В JUnit для проверки, что при выполнении теста выбрасывается ожидаемое исключение, можно использовать несколько подходов:
- Аннотация
@Test(expected = ExceptionClass.class)— устаревший способ, подходит для простых случаев.
@Test(expected = IllegalArgumentException.class)
public void testException() {
methodThatShouldThrow();
}
- Использование
assertThrows(JUnit 5) — более гибкий и современный способ, позволяющий проверить исключение и дополнительно проанализировать его:
import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
void testException() {
Exception exception = assertThrows(IllegalArgumentException.class, () -> {
methodThatShouldThrow();
});
assertEquals("Expected message", exception.getMessage());
}
assertThrows принимает класс ожидаемого исключения и лямбда-выражение с кодом, который должен выбросить это исключение. Если исключение не выбрасывается, тест проваливается.