Sonntag, 1. August 2010

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

MobileTech Conference 2010

MobileTech Conference 2010

6.- 8. September 2010
Rheingoldhalle, Mainz

BASTA! 2010

BASTA! 2010

20.-24. September 2010
Rheingoldhalle, Mainz

Shareconnect2010

Shareconnect2010

20.-23. September 2010
Rheingoldhalle, Mainz

SQLCON 2010

SQLCON 2010

21.-22. September 2010
Rheingoldhalle, Mainz

EKON 14

EKON 14

27.-30. September 2010
Maritim Rhein-Main Hotel Darmstadt

JAX London 2010 Autumn Edition

JAX London 2010 Autumn Edition

27.-29. September 2010
Novotel London West

DevCon London

DevCon London

27.-29. September 2010
Novotel London West

WebTech Conference

WebTech Conference

11.-13. Oktober 2010
Rheingoldhalle, Mainz

IPC 2010

IPC 2010

11.-13. Oktober 2010
Rheingoldhalle, Mainz

Entwicklertage 2010

Entwicklertage 2010

20.-24. Oktober 2010
Mainz

W-JAX 2010

W-JAX 2010

15.-19. November 2010
The Westin Grand München Arabellapark, München

BASTA! on Tour – Webanwendungen mit .NET

BASTA! on Tour – Webanwendungen mit .NET

15.-16. November 2010
Hamburg

Business Technology Days

Business Technology Days

16.-19. November 2010
The Westin Grand München Arabella Park

Werbung
Top-Jobs

cyclos design GmbH

WEB-ENTWICKLER/-IN

kraftwerk - Agentur für neue Kommunikation

Junior Web- Developer/in

Software & Support Verlag GmbH

Web-Entwickler (PHP, Javascript, CSS)
Sonderheft Mobile Technology

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