Je commence à travailler avec Java et JUnit, et je suis confronté à un problème de compréhension des trucs et astuces concernant la couverture de code. Si je ne me trompe pas, l'objectif ultime des tests unitaires est de parvenir à une couverture de test de 100%.Comment faire face à la couverture des tests et aux lignes impossibles?
Voici donc le code que j'ai en ce moment:
// field is of type Field (from reflection)
field.setAccessible(true);
try {
field.get(instance);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Voici donc, vous pouvez voir que je ne peux pas accéder au bloc catch() à tout moment parce que je fais le terrain accessible uniquement sur en haut ...
Quel est le problème avec mon code? Comment puis-je obtenir un résultat de couverture de code de 100% lorsque cela se produit?
Je ne sais pas si cela vous aidera, mais je changerais le bloc catch en 'throw new AssertionError();'. – shmosel
100% de couverture de code est une pipe-rêve. Ce n'est réalisable que dans des exemples triviaux. – AJNeufeld
La cible n'est pas 100%. Vous ne pouvez pas le faire sans vraiment jouer avec votre code. Au lieu de cela, vous faites de votre mieux. Comme une partie importante de votre code est la gestion des erreurs, certaines erreurs que vous pouvez tester et d'autres vous ne pouvez pas. Alors tu fais de ton mieux. –