Да, это нормально, хотя обратите внимание, что вы все равно не сможете проверить ответ, поскольку выдается исключение, поэтому вы не получите ответ! Однако вы можете проверить состояние исключения.
Для этого вы можете прочитать на странице «Exception Testing» официальной документации Junit 4 (код взят оттуда), где вы в основном используете assertThrows
метод, а не @Test(expected=)
, который позволяет вам проводить больше проверок.
Другой альтернативой будет использование ExpectedException Rule
. Снова, см. Ссылку для примера.
https://github.com/junit-team/junit4/wiki/Exception-testing
@Test
public void testExceptionAndState() {
List<Object> list = new ArrayList<>();
IndexOutOfBoundsException thrown = assertThrows(
IndexOutOfBoundsException.class,
() -> list.add(1, new Object()));
// assertions on the thrown exception
assertEquals("Index: 1, Size: 0", thrown.getMessage());
// assertions on the state of a domain object after the exception has been thrown
assertTrue(list.isEmpty());
}