Question

J'ai récemment commencé à créer mes propres annotations et au sport TDD / BDD, je voudrais à l'unité de tester mes annotations pour créer une spécification claire pour eux. Cependant, puisque les annotations sont essentiellement des interfaces simplement de fantaisie qui à ma connaissance ne peut pas être vraiment instanciés directement, est-il un moyen peu de réflexion pour test unitaire une annotation?

Était-ce utile?

La solution

Ce n'est pas quelque chose que je avais l'habitude d'écrire des tests pour, mais vous pouvez simplement créer un ensemble de classes d'essai qui usent et abusent de l'annotation, de tester qu'il stocke ses valeurs membres, qu'il a les valeurs par défaut correctes etc.

Cela ne fonctionnera que sur les annotations d'exécution qui sont specfied sur les bonnes cibles bien sûr.

Dans mon expérience, eux-mêmes annotations sont rarement assez intéressants pour justifier des tests unitaires - il est généralement le code qui les utilise qui a besoin de tests. Mais je ne suis pas de l'école de couverture de code 100% de la pensée: -)

Autres conseils

Les annotations ont un certain impact (sinon, il serait inutile de les utiliser). Donc, ne pas tester la présence d'annotation, mais l'effet qu'elle devrait avoir.

Vous pouvez tester l'unité si votre définition d'annotation est ok: peut-il être appliqué à l'ensemble des éléments valables, est disponible à l'exécution si nécessaire, ne la valeur par défaut correctement initialisé? Puis, plus tard, des tests unitaires de la classe qui traitera votre annotation.

Vous ne pouvez pas les tester directement puisque, comme vous l'avez dit, il n'y a rien à tester. Vous pouvez prouver certaines choses, bien que:

  • Objets avec annotations dans le code ont des annotations attendues lors de l'exécution
  • Les valeurs par défaut ont été initialisées
  • Les annotations se lient aux choses que vous les attendez à

Lorsque vous test unitaire, une des choses que vous pouvez prouver est que votre implémentation est conforme à l'interface. Donc, si une annotation implique un certain comportement ou propriétés (par exemple, les choses devraient vraiment Serializable être sérialisable ), vous voulez représenter dans vos essais aussi.

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