Question

Dupliquer : Java: Comment tester les méthodes appelant System.exit ()?

J'ai quelques difficultés à concevoir un test unitaire pour une méthode qui quitte l'application en appelant system.exit () . En réalité, il s'agit du constructeur d'une classe qui teste certaines conditions et décide de quitter l'application. C'est donc cette éventualité particulière que j'aimerais tester.

Existe-t-il une assertion particulière que je pourrais utiliser ou toute autre suggestion?

public MyClass(arg1, arg2, arg3){
    if(argsTestingIsOK){
        continue;       
    }else{
        System.exit(0);
    }
}
Était-ce utile?

La solution

Au lieu de exit () -ing dans le constructeur, lancez un IllegalArgumentException à la place (puisque c'est ce qui se passe réellement) et laisse à l'appelant le soin de gérer l'exception. Le code de l'application peut être écrit pour traiter l'exception tandis que le test JUnit peut affirmer que l'exception se produit.

Autres conseils

Ne faites pas cela dans un constructeur. C'est une mauvaise idée, et c'est trompeur pour quiconque utilise votre code.

La meilleure pratique consiste à n'utiliser que quelque chose comme System.exit () dans une méthode principale ou dans le point d'entrée de votre application, ce qui n'est absolument pas au milieu du code de construction d'objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top