Mit der @CsvSource Annotation in JUnit 5 kann man mit Kommaseparierte Parameter leicht und übersichtliche Tests schreiben. Die API ist aber noch im EXPERIMENTAL Status.

Hier mal ein Beispiel. Für jeden Kommandozeilen Parameter eine Testmethode schreiben:
@Test
void testHilfe() throws Exception {
String[] args = { "-h" };
Start.main(args);
}
@Test
void testVersion() throws Exception {
String[] args = { "-v" };
Start.main(args);
}
@Test
void testFehler() throws Exception {
String[] args = { "-fehler" };
Start.main(args);
}
Das kann leicht mit JUnit 5 übersetzt und vereinfacht werden mit:
@ParameterizedTest(name = "{index}. Überprüfter Kommandozeilen Parameter: {arguments}")
@CsvSource({ "-h", "-v", "-Kommandozeilenfehler", "-i", "-a", "-t" })
void kommandoZeilenTest(String kommandozeilenparameter) throws Exception {
Start.main(new String[] { kommandozeilenparameter });
}
Einfach die Parameter der @CsvSource Annotation hinzufügen. Die Testmethode wird dann 6 mal aufgerufen mit jeden Parameter einmal, und der Methoden Name ist auch schön übersichtlich. Es können die {index} und {arguments} Parameter wie folgt verwendet werden:

Ähnliche Artikel:
- Java Quickie: Liefere die IP vom Domain Namen
- JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
- Java Quickie: Ist eine Domain erreichbar?
