Mittwoch, 8. Februar 2012

News

präsentiert von: JAXenter
Montag, 20. Februar 2006

Next Generation Testing: JUnit 4 released

Seit langem erwartet, endlich erschienen und mittlerweile überfällig: JUnit 4. Das neueste Release ist jetzt über die Sourceforge-Seite von JUnit verfügbar. Die eigentliche Webseite wurde bisher nicht aktualisiert. Vor diesem Release haben die Macher von JUnit 4 Entwickler-Releases im Archivsystem (CVS) bereitgestellt, um mithilfe umfangreicher Diskussionen, etwa über die JUnit-Mailing-Liste, ein Feedback der Benutzer zu erhalten. Die Notwendigkeit eines neuen Releases war in den Diskussionen zu spüren. Der junge Rivale TestNG, ebenfalls ein Test-Framework, verstärkte den Druck.

Im Zeichen von Java 5
JUnit 4 basiert im Gegensatz zu früheren Releases auf Java 5 und ist nicht unter niedrigeren Java-Releases lauffähig. Die neuen Java-Sprachkonstrukte Annotations, Generics und Varargs fanden Einzug in JUnit 4. Wichtigste Neuerung ist die Einführung der Annotations. Annotations sind in Java 5 eingeführte Sprachkonstrukte, die es erlauben, Metadaten im Programmtext anzubringen. Diese Metadaten werden von JUnit 4 ausgewertet. Die Annotation @Test ist wohl die wichtigste, denn sie kennzeichnet eine Methode als Testmethode. Das bedeutet, die frühere Namenskonventionen, eine solche Methode mit dem Präfix "test" beginnen zu lassen, ist hinfällig. Eine Testmethode hat nun etwa folgende Gestalt:

@Test public void meinTest() {
int ergebnis = multiplikation(2,3)
assertEquals(6, ergebnis);
}

Analog erlauben es die Annotationen @Before und @After, die früher mit setUp() und tearDown() bezeichneten Methoden zu kennzeichnen, die Initialisierungen und Aufräumarbeiten vor bzw. nach jedem Testfall durchführen. Dies wird nun auch auf Klassenebene unterstützt, und zwar mit @BeforeClass und @AfterClass. Früher musste hierfür getrickst werden, etwa durch Einführen eines statischen Blocks. Ebenfalls neu ist die Möglichkeit, einen Testfall als momentan nicht produktiv zu kennzeichnen. Die Annotation hierfür lautet @Ignore.

Zum Testen einer Logik auf erwartete Ausnahmen (Exceptions) blieb mit früheren JUnit-Versionen nur der Weg über einen try-catch-Block. In den Fällen, wo es nur darum geht, zu prüfen, ob eine bestimmte Ausnahme geprüft wird, kann die Umsetzung nun dementsprechend vereinfacht werden. Die Annotation @Test, die oben bereits erwähnt wurde, besitzt einen optionalen Parameter namens "expected". Er wird mit der erwarteten Ausnahmeklasse versorgt und fertig. Es ist damit allerdings nicht möglich, weitere Eigenschaften des Ausnahme-Objekts zu prüfen, etwa den Meldungstext.

Eine recht simple Möglichkeit, die Laufzeit eines Testfalls zu begrenzen, bietet die Annotation @Timeout. Nach Überschreitung der damit angegebenen Zeit in Millisekunden schlägt der Test fehl. In Multitasking-Umgebungen, deren Hardware zudem differieren kann, ist dieses Vorgehen jedoch fragwürdig.

Zur Gewährleistung der Abwärtskompatibilität bietet JUnit 4 eine Serviceklasse namens JUnit4TestAdapter zur Ausführung alter Testfälle an.

Fazit
Die Verwendung von Annotationen ist sauberer und mächtiger, als spezielle Methoden über dedizierte Namen und Namensräume (Präfix "test") zu identifizieren. Allerdings ist deren Verwendung gewöhnungsbedürftig. Einen Methodennamen schnell hinzuschreiben ist für viele bequemer, als eine Annotation anzubringen. Auch der Zwang, die neue Java-Version verwenden zu müssen, ist für manches Projekt sicher nicht optimal. Der Schritt hin zu einem neuen Paradigma war für JUnit aber notwendig. Einerseits wegen der Konkurrenzsituation. Andererseits, um den gestiegenen Anforderungen der Anwender Rechnung zu tragen. (Klaus Meffert, Autor Java Magazin)

(an)

Konferenzen

BASTA! 2012

BASTA! 2012

27.- 2. März 2012
Maritim Hotel Darmstadt

MobileTech Conference

MobileTech Conference

26.-28. März 2012
München

JAX 2012

JAX 2012

16.-20. April 2012
Rheingoldhalle, Mainz

BigData Con 2012

BigData Con 2012

16.-18. April 2012
Rheingoldhalle, Mainz

Business Technology Days

Business Technology Days

17.-19. April 2012
Rheingoldhalle, Mainz

International PHP Conference

International PHP Conference

3.- 6. Juni 2012
Maritim proArte, Berlin

webinale 2012

webinale 2012

4.- 6. Juni 2012
Maritim proArte Berlin

RailswayCon

RailswayCon

4.- 6. Juni 2012
Maritim proArte, Berlin

Werbung
Top-Jobs

Fraunhofer-Institut für Windenergie und Energiesystemtechnik IWES

Informatikerin / Informatiker

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

Sharepoint

Sharepoint Magazin

Sharepoint

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

PHP User - Praktische Referenz für Internetenthusiasten

PHP User

Praktische Referenz für Internetenthusiasten

Bücher




Webhosting mit Host Europe