Was ist JUnit?JUnit Logo

„JUnit“ ist ein Kompositum der beiden Worte „Java“ und „Unit“ und ist, getreu dieser Zusammensetzung, besonders dafür geeignet, Unit-Tests in Java durchzuführen. Kent Beck entwickelte ursprünglich das Test-Framework SUnit, welches er zusammen mit Erich Gamma auf Java nutzbar machte und schlussendlich als JUnit veröffentlich hat. Das Framework ist plattformübergreifend nutzbar und wird unter der Eclipse Public License geführt. Damit ist es kostenfrei kommerziell nutz- und modifizierbar.

Testen mit JUnit

Da sich JUnit besonders gut für Unit-Tests, also dem Testen von Klassen oder Methoden, eignet, ist es im Extreme Programming (XP) und der agilen Programmierung im Allgemeinen beliebt.

Die Testfälle sind dabei speziell auf die entsprechenden Methoden zugeschnitten und werden, unter der Einbindung der JUnit-Bibliothek, in Java programmiert. Dabei unterscheidet  JUnit nur zwischen zwei Testergebnissen: True (Grün) und False (Rot) – denn entweder erfüllt der Testcode das angenommene Verhalten, oder nicht. Ist letzteres der Fall, muss zwischen einem Fehler (Error) und einem falschen Ergebnis (Failure) differenziert werden. Failures können oftmals mit einer Exception behandelt werden, Errors dagegen sind fehlerhaftes Codeverhalten.

In der Regel werden die Testfälle schon vor dem eigentlichen Programmcode geschrieben, um von Beginn an fehlerfreien Code zu entwickeln, der die gewünschte Funktionalität umsetzt. Dies nennt man auch „testgetriebene Entwicklung“ oder Test Driven Development

Erweiterungen

Um nicht nur Java testen zu können, gibt es mittlerweile zahlreiche Erweiterungen, die die Testfunktionalität auf andere Bereiche ausweiten. So machen HTTPUnit und DBUnit sowohl Web- und Datenbankstrukturen testbar. Meta-Tests, wie zum Beispiel die Code-Coverage der Test-Suit, erschließt das Plugin DJUnit. Auch eher im Systemtest angesiedelte Tests mit Selenium oder Appium werden sehr häufig in der Testfallstruktur implementiert.

Vor- und Nachteile von JUnit

Vorteile

  • „Schnelles“ Testen unterstützt vor allem agile Programmierparadigmen
  • Einmalig programmierte Testfälle lassen sich weiterverwenden
  • Gratis unbeschränkt nutzbar
  • Dauerhafte Aktualisierung
  • Große Menge an Dokumentation, Tutorials und Hilfestellungen
  • Große Funktionalität durch Plugins und Erweiterungen

Nachteile

  • Programmierkenntnisse erforderlich

Verwandte

JUnit fügt sich als Framework für Unit-Tests in eine Reihe von anderen Frameworks ein. Diese kann man unter dem Namen xUnit zusammenfassen. Weitere Vertreter dieser Familie sind unter anderem

  • PHPUnit für PHP
  • CppUnit für C++
  • NUnit für .Net-Framework
  • QUnit für Javascript
  • DUnit für Delphi