Essayez de l'attraper dans un test Unitaire

Je suis en train d'écrire des tests unitaires pour une application qui existe déjà depuis longtemps. Certaines de ces méthodes j'ai besoin de tester sont construit comme ceci:

public void someMethod() throws Exception { 
   //do something 
}

Si je veux tester ces méthodes que j'ai à écrire quelque chose comme ceci dans mon test unitaire:

@Test
public void someTest() {
   try {
      someMethod();
   }
   catch (Exception e) {
      e.printStackTrace();
   }
}

Est-il une bonne pratique de le faire? Ou est-il un autre moyen pour tester ces méthodes?

J'ai fait quelques recherches sur internet et j'ai trouvé quelques solutions avec le @Rule d'annotation et de @Test(expected=Exception.class), mais qui ne fonctionne pas (Eclipse continue de s'afficher la someMethod() ligne dans le test que de mal).
Je ne sais pas si ce sont de bonnes solutions, parce que je suis assez nouveau à l'ensemble de l'unité de test histoire.

Si quelqu'un qui sait beaucoup de choses sur ce qui pourrait m'aider, j'en serait vraiment reconnaissante.

  • Ne supprime pas l'exception, sauf si vous voulez le test à passer si oui ou non l'exception est levée. Notez qu'un test qui passe "de savoir si ou de ne pas" quelque chose comme une exception se produit peut ne pas être utile.
  • Vous pouvez laisser JUnit pour prendre soin de l'Exception en l'ajoutant à votre méthode sig: public void someTest() throws Exception. Cependant si vous voulez attraper l'Exception de vous-même pour affirmer qu'il soit caugt l'exemple que vous avez donné est bon pour aller.
  • JUnit "prend soin de lui" grâce à l'impression de la trace de la pile et de ne pas le test.
  • Oui, c'est vrai. Dans la convention si, en déclarant la levée d'une exception est de permettre à un niveau supérieur, cadre de poignée ou de la JVM. J'aurais été plus clair sur ce point.
  • Si c'est une bonne idée dépend de ce que vous essayez de faire.
InformationsquelleAutor Nelsch | 2015-07-15