J'ai mis en place un test JUnit (4.12) avec la fonction ExpectedException, et je voudrais que le test continue après l'exception attendue. Mais je ne vois jamais le journal '3', car l'exécution semble s'arrêter après l'exception, événement si attraper?Comment continuer le test après JUnit ExpectedException si lancé?
Est-ce réellement possible, et comment?
@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");
}
Vous pourriez vouloir reconsidérer écrire un tel test où vous voulez exécuter quelque chose après qu'une exception soit levée. S'il y a autre chose que vous voulez tester, vous devez les séparer en deux tests différents, l'un vérifiant l'exception et l'autre vérifiant l'autre logique. –
Possible duplicata de [JUnit continuer à affirmer des choses après exception prévue] (http://stackoverflow.com/questions/21506079/junit-continue-to-assert-things-after-expected-exception) – Joe