Multi Module Build Automation mit Maven

JUnit-Testing

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Unit-Testing ist Kern des TDD, des Test-driven Developments (testgetriebene Entwicklung). Maven generiert aus dem meisten Archetypen bereits ein Testszenario, das Sie ganz einfach zum Aufbau von Tests erweitern können.

Transkript

Lassen Sie uns ein wenig über Unit Testing reden, oder allgemein testgetriebene Entwicklung, wie man es in einem größeren Umfeld nennt. Das ist ein nicht ganz unkritisches Thema aus verschiedenen Gründen. Ich habe noch gelernt, dass man testgetriebene Entwicklung entweder vollständig betreibt oder gar nicht. Dass sich also überhaupt nicht lohnt nur Teile eines Programms, eines Projektes mit Unit Testing zu überprüfen, man muss entweder das gesamte Konzept von Anfang an durchziehen oder man sollte es lassen. Unabhängig davon Unit Testing ist in jeder Form nicht ganz unkritisch bei der Programmierung. Das Schöne an Maven ist nun, dass eine integrierte Unterstützung für Unit-Tests bereits implementiert ist. Die meisten Vorlagen, mit denen Sie arbeiten, generieren automatisch bereits Testszenarien, zumindest eine einfache Form, mit der man arbeiten kann. Konkret wird das JUnit-Plugin verwendet, um Ihre Applikation einfach testen zu können. Bereits der Archetype Quick-Start generiert so ein Test-Verzeichnis. eine typische pom.xml Datei wird also hier in den Abhängigkeiten bereits eine Spezifikation für ein Testumfeld, "scope test" sehen Sie hier, beinhalten. Bereits eine einfache "Hallo World" App, die von Maven generiert wird, enthält eine Klasse AppTest, extends Testcase, und hier findet man alles, was man braucht, Um einen Unittest durchzuführen. Sie haben hier beispielsweise eine Assert-Methode. Die liefert immer "true" zurück, was relativ ist, da sieht man hier auch, dass hier ein Smiley steht, aber das ist ja nur eine Code-Schablone, .... die Sie jetzt selbst für Ihr Unit Testing anpassen müssen. Sehen wir uns jetzt einmal eine etwas komplexere Textsituation an... mit realen Tests, die auch Sinn machen. Ich bin hier in NetBeans, aber das spielt keine Rolle, das kann ich natürlich auch in einem normalen Editor hier eingeben. Ich habe hier ein kleines Programm, dass nichts weiter tut, als gewisse mathematische Informationen durchführen. Ich habe eine Methode "sum", addieren, subtrahieren, dividieren und multiplizieren, das sind Klassenmethoden und hier führe ich diese entsprechenden Operationen aus. Aber das ist nicht das, was mich interessiert. Mich interessiert die Testseite. Denn es wurde ja automatisch beim Anlegen von dem Projekt auch eine App "Test" erzeugt. Und die wollen wir uns mal ansehen. Der entscheidende Punkt ist, dass ich hier eine Methode testApp habe, die führt gewisse Tests aus. Hier gibt es beispielsweise ein Divisionstest, ein Multiplikationstest, ein Subtraktionstest und ein Additionstest. Wenn wir uns mal den Additionstest hier ansehen, dann bekommt diese Methode zwei Parameter übergeben. Im Inneren benutze ich die Methode hier aus App zur Addition und lasse die mal rechnen. Die liefert natürlich ein Resultat zurück. Der entscheidende Punkt ist, dieses Resultat muss mit einer vorher getroffenen Annahme übereinstimmen. Ich benutze hier die Methode "assertEquals" und sage, wenn das Resultat "fünfzehn" ist, was natürlich Sie sehen 10+5 ergeben sollte, dann ist der Test erfüllt, andernfalls eben nicht. Und nach der gleichen Logik nutze ich die Methode mit der Subtraktion und vergleiche das Ergebnis mit einem Annahmewert, die Division und natürlich auch die Multiplikation. Das heißt, ich rufe hier viermal Testmethoden auf, und das sollten wir jetzt mal machen. Dazu wechsle ich in die Konsole, denn da sehen Sie besonders viel. ich stehe hier in meinem Projekt und ich gebe "mvn test" ein. Und das bedeutet, die Testfälle werden jetzt durchgespielt. Sie sehen hier die einzelnen Ausgaben, aber die sind nicht weiter wichtig, diese Zeile "Tests run", das ist die einzige, die mich wirklich interessiert. Ich habe einen Test durchgeführt mit 0 Fehler jeweils, und das ist das Interessante. Bauen wir mal Fehler ein. Fehler bezüglich der Annahmen. Das heißt, wenn ich mal annehme, dass "10+5" vierzehn ergibt, dann wird diese assertEquals-Methode beim Vergleich nicht mehr "true" liefern, das heißt es gibt einen Fehler. Lassen wir uns das wieder in der Konsole anzeigen, "mvn test". Und Sie sehen, es gibt jetzt hier einen fehlgeschlagenen Test. Und nicht nur das, da ein Ziel meiner gesamten Aktionen schiefgelaufen ist, der Test ist schiefgelaufen, aus dem Grund wird auch kein vollständiges Projekt erzeugt, sprich die Erstellung wird mit einem Fehler abgebrochen. Das ist ein gewünschter Zustand, bitte, das ist keine schlechte Situation. Wir müssen jetzt dafür sorgen, dass die Tests erfüllt werden. Nur dann können wir alle Ziele hier von unserem Maven-Projekt auch wirklich erfüllen. Lassen Sie uns also festhalten, die Testfälle, die hier von den meisten Vorlagen automatisch generiert werden, lassen sich wunderbar dafür nutzen, eigene Tests zu schreiben, natürlich unter der Voraussetzung, dass es sich mit JUnit und den hier verwendeten Methoden auskennen und wissen, wie man JUnit-Test schreibt, und Maven kümmert sich automatisch darum, dass diese Tests auch ausgeführt werden und reagiert im Fehler- und Erfolgsfall entsprechend, wie wir es hier gesehen haben.

Multi Module Build Automation mit Maven

Nutzen Sie mit diesen Techniken Maven optimal für Ihre Projekte.

55 min (17 Videos)
Derzeit sind keine Feedbacks vorhanden...
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!