J'ai quelques junit tests de créer des ressources qui devraient également être fermé.
Une façon de mettre en œuvre cette logique est à l'aide de l' @Before
et @After
approche.
Ce que j'ai fait était pour encapsuler la création, sous une classe utilitaire pour être réutilisé. Par exemple:
class UserCreatorTestUtil implements AutoClosable {
User create() {...}
void close() {...}
}
Le point est pour l'objet de fermer lui-même, plutôt que d'avoir à vous rappeler de le fermer en @After
.
L'usage doit être:
@Test
void test() {
try (UserCreatorTestUtil userCreatorTestUtil = new UserCreatorTestUtil()) {
User user = userCreatorTestUtil.create();
// Do some stuff regarding the user's phone
Assert.assertEquals("123456789", user.getPhone());
}
}
Le problème est que junit est affirmer mot-clé déclenche une Error
- pas d' Exception
.
Va l'essayer-avec-ressource "attraper" l' Error
et d'appeler la méthode close?
* Ne pouvais pas trouver la réponse dans le try-with-resources de la documentation.