08/2008 - KaffeeKlatsch
08/2008 - KaffeeKlatsch
08/2008 - KaffeeKlatsch
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Verhext!<br />
erbt, welche die Funktionalität eines HttpServlets, und<br />
damit die Klassen WebSession, HttpServletRequest ,<br />
HttpServletResponse und ServletContext, singlethreaded<br />
mockt. Für multi-threaded Tests muss jedoch<br />
ein vollständiger ServletContainer zur Verfügung<br />
stehen.<br />
Für die Ausführung von Prüfungen stellt der Wicket-<br />
Tester eine Reihe von Methoden zur Verfügung, wie<br />
assertRenderedPage, um zu prüfen, ob die korrekte Seite<br />
gerendert wird, assertComponent, ob eine Kompontenklasse<br />
in einem bestimmten Container enthalten ist und<br />
assertVisible, ob eine bestimmte Komponente angezeigt<br />
wird. Derer enthält er noch eine ganze Anzahl weiterer.<br />
Im Folgenden ist ein kurzer Auszug zu sehen, wie die<br />
Struktur eines Tests mit dem WicketTester aufgebaut<br />
sein kann.<br />
public class TestHomePage extends TestCase {<br />
private WicketTester tester;<br />
public void setUp() {<br />
tester = new WicketTester();<br />
}<br />
public void testRenderMyPage() {<br />
tester.startPage(WelcomePage.class);<br />
tester.assertRenderedPage(WelcomePage.class);<br />
tester.assertLabel("pageTitle",<br />
"Music Manager - Willkommen");<br />
}<br />
}<br />
Oberflächen-Tests lassen sich bei Wicket-Anwendungen<br />
mit den allgemein gebräuchlichen Tools durchführen,<br />
wie beispielsweise Selenium [5] oder dem Grinder [6].<br />
Selenium ist ein Tool zum automatisierten Testen<br />
von Web-Anwendungen, wobei sich die Tests über ein<br />
Firefox-Plug-in oder mit der umfangreichen API direkt<br />
erstellen lassen. Der Grinder arbeitet auf der Basis von<br />
Request-Response-Zyklen, die sich aufzeichnen und<br />
dann wieder abspielen lassen. Hierbei werden Abweichungen<br />
vom erwarteten Ergebnis bewertet. Er ist vor<br />
Allem auf Lasttests ausgelegt.<br />
Zu guter Letzt...<br />
Wicket präsentiert sich als leichtgewichtiges Web-<br />
Frame work, das dem Entwickler als Frontend-Einsteiger<br />
schnell und relativ unkompliziert ermöglicht, zu ersten<br />
Ergebnissen zu kommen, und auch dem Frontend-Umsteiger<br />
einen schnellen Einstieg bietet. Vom Entwicklungsgefühl,<br />
das sich bei der Arbeit einstellt, erinnert das<br />
Arbeiten mit Wicket eher an Javas Swing-Entwicklung<br />
als beispielsweise an JavaServer Faces ( JSF) [7].<br />
Zwei besonders angenehme Punkte an Wicket sind die<br />
gelungene Kapselung der Web-Session und die Trennung<br />
des HTML-Seitenaufbaus von der Java-Implementierung.<br />
Der HTML-Anteil einer Wicket-Anwendung<br />
präsentiert sich als (fast) reines HTML, was es auch ermöglicht,<br />
HTML-Designer mit der Gestaltung der Seiten<br />
zu beauftragen.<br />
Allerdings muss deutlich gemacht werden, dass komplexere<br />
Anforderungen, wie z. B. der Aufbau von dynamischen<br />
Tabellen aus komplexen Datenobjekten inklusive<br />
zeilenweiser Eingabemöglichkeiten, dem Entwickler<br />
auch bei Wicket nicht geschenkt werden.<br />
Zudem ist die Skalierbarkeit von Wicket-Anwendungen<br />
nicht in dem Maße erprobt wie bei anderen<br />
Web-Frameworks, beispielsweise dem bereits erwähnten<br />
JSF. Der vorhandene Baukasten für Wicket-Komponenten<br />
hat noch nicht die Reife und den Umfang erreicht<br />
wie bei anderen Webframeworks.<br />
Da Wicket dennoch einige vielversprechende Ansätze<br />
mit sich bringt, sind die beiden Autoren in dieser<br />
Hinsicht jedoch optimistisch.<br />
Referenzen<br />
[1] StarWars.com Warrick, Wicket W.,<br />
http://www.starwars.com/databank/character/wicketwwarrick<br />
[2] Apache.org Apache Wicket, http://wicket.apache.org<br />
[3] Apache.org Apache Maven Project, http://maven.apache.org<br />
[4] Laughing Panda Wicket Bench,<br />
http://www.laughingpanda.org/mediawiki/index.php/Wicket_Bench<br />
[5] OpenQA Selenium web application test system, http://selenium.openqa.org<br />
[6] SourceForge.net The Grinder, a Java Load Testing Framework,<br />
http://grinder.sourceforge.net<br />
[7] Sun Microsystems JavaServer Faces Technology,<br />
http://java.sun.com/javaee/javaserverfaces<br />
Weiterführende Literatur<br />
• Gurumurthy, Karthik Pro Wicket, Apress, 2006<br />
• Ka Iok Tong, Kent Enjoying Web Development with Wicket,<br />
BookSurge Publishing, 20<strong>08</strong> Kurzbiographie<br />
Isabella Kneissl (<br />
) ist als Software-<br />
Entwicklerin und Trainerin für die MATHEMA Software GmbH<br />
tätig. Ihre Themenschwerpunkte umfassen die Software-Entwicklung<br />
unter Java, speziell komponentenbasierte Java-Anwendungen.<br />
Neben ihrer Projekttätigkeit hält sie Technologie-Trainings für die Kunden der<br />
MATHEMA und befasst sich stets mit den Neuerungen im Java-Umfeld.<br />
Kurzbiographie<br />
Matthias Göttler (<br />
) ist Diplom-<br />
Wirtschaftsinformatiker und als Software-Entwickler, Trainer und<br />
Consultant bei der MATHEMA Software GmbH angestellt. Dabei<br />
beschäftigt er sich besonders gerne mit der Performanz von Java-<br />
Applikationen.<br />
Copyright © 20<strong>08</strong> Bookware 1865-682x/<strong>08</strong>/<strong>08</strong>/001 Von diesem <strong>KaffeeKlatsch</strong>-<br />
Artikel dürfen nur dann gedruckte oder digitale Kopien im Ganzen oder in Teilen gemacht<br />
werden, wenn deren Nutzung ausschließlich privaten oder schulischen Zwecken<br />
dient. Des Weiteren dürfen jene nur dann für nicht-kommerzielle Zwecke kopiert , verteilt<br />
oder ver trieben werden, wenn diese Notiz und die vollständigen Artikel angaben<br />
der ersten Seite (Ausgabe, Autor, Titel, Untertitel) erhalten bleiben. Jede andere<br />
Art der Vervielfältigung – ins besondere die Publikation auf Servern und die Verteilung<br />
über Listen – erfordert eine spezielle Genehmigung und ist möglicherweise mit<br />
Gebühren verbunden.<br />
Seite 10 <strong>KaffeeKlatsch</strong> Jahrgang 1 / Nr. 8 / August 20<strong>08</strong>