Wie teste ich Aufzählungstypen?

Momentan versuche ich, einen mehr oder weniger vollständigen Satz von Komponententests für eine kleine Bibliothek zu erstellen. Da wir verschiedene Implementierungen zulassen möchten, möchten wir, dass diese Testreihe (a) allgemein ist, damit wir sie erneut verwenden können, um die verschiedenen Implementierungen zu testen, und (b) so vollständig wie möglich. Zum Teil (b) würde ich gerne wissen, ob es Best Practices zum Testen von Aufzählungstypen gibt. So habe ich zum Beispiel eine Aufzählung wie folgt:

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

Hier möchte ich sicherstellen, dass wirklich alle Aufzählungstypen existieren. Ist das überhaupt nötig? Zur Zeit benutze ich HamcrestsassertThat wie im folgenden Beispiel:

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

Eine fehlende Januar-Aufzählung würde zu einem Fehler bei der Kompilierung führen, den Sie beheben können, indem Sie den fehlenden Aufzählungstyp erstellen.

Ich verwende Java hier, aber es macht mir nichts aus, wenn Ihre Antwort für eine andere Sprache ist.

Bearbeiten:

Wie sowohl mkato als auch Mark Heath darauf hingewiesen haben, sind möglicherweise keine Tests erforderlich, da der Compiler nicht kompiliert werden kann, wenn Sie einen nicht vorhandenen Aufzählungstyp verwenden. Ich möchte diese Aufzählungen dennoch testen, da wir eine separate TCK-ähnliche test.jar-Datei erstellen möchten, die denselben Test für verschiedene Implementierungen ausführt. Meine Frage sollte eher lauten: Was ist der beste Weg, um Aufzählungstypen zu testen?

Nachdem ich ein bisschen darüber nachgedacht hatte, änderte ich die Hamcrest-Aussage wie folgt:

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

Diese Anweisung löst jetzt eine NPE aus, wenn der Januar (noch) nicht da ist. Stimmt etwas mit diesem Ansatz nicht?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage