Comment tester les types enum?

Je suis en train d'essayer de construire une plus ou moins ensemble complet de tests unitaires pour une petite bibliothèque. Puisque nous voulons permettre des implémentations différentes d'exister nous voulons que cette série de tests pour être (un) générique, de sorte que nous pouvons l'utiliser pour tester les différentes implémentations et (b) la plus complète possible. Pour le b) de la partie j'aimerais savoir si il y a de meilleur-pratique pour tester les types d'énumérations. Ainsi, par exemple, j'ai un enum comme suit:

public enum Month {
    January,
    February,
    ...
    December;
}

Ici, je veux m'assurer que tous les types enum existent vraiment. C'est que même nécessaire? Actuellement, je suis en utilisant Hamcrests assertThat comme dans l'exemple suivant:

assertThat(Month.January, is(notNullValue()));

Manque de "janvier" enum résultat serait une erreur de compilation qui l'on peut résoudre par la création, le manque d'un type enum.

Je suis à l'aide de Java ici, mais je n'ai pas l'esprit si votre réponse est pour une autre langue..

Edit:

Comme mkato et Mark Heath ont tous les deux souligné les tests enums peut ne pas être nécessaire puisque le compilateur ne compile pas lorsque vous utilisez un type d'énumération qui n'est pas là. Mais j'ai encore envie de tester ces énumérations, puisque nous voulons construire une salle de TCK-comme test.jar qui va exécuter le même test sur les différentes implémentations. Donc ma question était plus destiné à être comme: Quelle est la meilleure façon de tester les types enum?

Après y avoir réfléchi un peu plus, j'ai changé le Hamcrest déclaration ci-dessus:

assertThat(Month.valueOf("January"), is(notNullValue()));

Cette déclaration jette un NPE lors de janvier n'existe pas (encore). Il n'y a rien de mal avec cette approche?

source d'informationauteur seb