Ustawiłem test JUnit (4.12) z funkcją ExpectedException i chciałbym, aby test był kontynuowany po oczekiwanym wyjątku. Ale nigdy nie widzę logu "3", ponieważ wykonanie wydaje się zatrzymywać po wyjściu, zdarzenie w przypadku złapania?Jak kontynuować test po wyrzuceniu JUnit ExpectedException?
Czy jest to rzeczywiście możliwe i jak?
@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");
}
możesz chcieć zrewidować pisanie takiego testu, w którym chcesz wykonać coś po zgłoszeniu wyjątku. Jeśli jest coś, co chcesz przetestować, powinieneś podzielić je na dwa różne testy: jeden, który sprawdza wyjątek, a drugi sprawdza drugą logikę. –
Możliwy duplikat [JUnit kontynuuje potwierdzanie rzeczy po oczekiwanym wyjątku] (http://stackoverflow.com/questions/21506079/junit-continue-to-assert-things-after-expected-exception) – Joe