Sobes.tech
Junior — Middle

Come si può confermare che durante l'esecuzione di un test in JUnit viene sollevata l'eccezione prevista?

sobes.tech AI

Risposta dell'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 принимает класс ожидаемого исключения и лямбда-выражение с кодом, который должен выбросить это исключение. Если исключение не выбрасывается, тест проваливается.