Sobes.tech
Назад к вопросам
Junior — Middle
60

Каким образом можно подтвердить, что при выполнении теста в JUnit выбрасывается ожидаемое исключение?

Ответ от нейросети

sobes.tech AI

В JUnit для проверки, что при выполнении теста выбрасывается ожидаемое исключение, можно использовать несколько подходов:

  1. Аннотация @Test(expected = ExceptionClass.class) — устаревший способ, подходит для простых случаев.
@Test(expected = IllegalArgumentException.class)
public void testException() {
    methodThatShouldThrow();
}
  1. Использование 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 принимает класс ожидаемого исключения и лямбда-выражение с кодом, который должен выбросить это исключение. Если исключение не выбрасывается, тест проваливается.