Я установил некоторый тест JUnit (4.12) с функцией ExpectedException, и я хотел бы, чтобы тест продолжался после ожидаемого исключения. Но я никогда не вижу журнал «3», так как выполнение, похоже, прекращается после исключения, событие, если оно уловлено?Как продолжить тест после исключения JUnit ExpectedException при броске?
Возможно ли это, и как?
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void testUserAlreadyExists() throws Exception {
log.info("1");
// Create some users
userService.createUser("toto1");
userService.createUser("toto2");
userService.createUser("toto3");
Assert.assertTrue(userService.userExists("toto1"));
Assert.assertTrue(userService.userExists("toto2"));
Assert.assertTrue(userService.userExists("toto3"));
log.info("2");
// Try to create an existing user
exception.expect(AlreadyExistsException.class);
userService.createUser("toto1");
log.info("3");
}
Возможно, вам захочется пересмотреть запись такого теста, где вы хотите что-то выполнить после исключения. Если есть что-то еще, что вы хотите протестировать, вы должны разделить их на два разных теста, один из которых проверяет исключение и второй проверяет другую логику. –
Возможный дубликат [JUnit продолжать утверждать вещи после ожидаемого исключения] (http://stackoverflow.com/questions/21506079/junit-continue-to-assert-things-after-expected-exception) – Joe