6.8 Test: Prototyp

Als Framework benutze ich JUnit, welches breit unterstützt wird und der Quasi-Standard ist. Es ist sehr gut in Maven integriert, denn direkt nach dem Kompilieren werden alle Tests automatisch durchgeführt und bei Fehlern abgebrochen.

Der Aufbau der Tests ist sehr wichtig, so teste ich jede Komponente und Schicht einzeln, wenn es möglich ist. Um den WebService zu testen, muss man auf die Logik und die Persistenz zugreifen, weswegen man die Tests für jede einzelne Schicht schreibt, angefangen bei den Hilfsklassen, dann die Persistenz, danach die Logik und am Schluss erst den WebService. Oft ist es sehr schwierig Tests zu schreiben, gerade dann, wenn die Daten auf Zufallswerten basieren, wie es hier bei dem Spiel der Fall ist. Aber in so einem Fall ist es um so wichtiger, die testbaren Komponenten ordentlich zu testen.

Die Hilfsklassen sind in diesem Fall z.B. die Übertragungsobjekte (Data Transfer Objects). Der Test basiert darauf, dass zunächst die Objekte mit Daten befüllt und serialisiert werden. Nach einer ersten Validierung werden die Objekte wieder deserialisiert und dann mit den Ursprungsobjekten verglichen. Hier darf keine Abweichung festgestellt werden, sonst schlägt der Test fehl.

Bei der Persistenz teste ich die korrekte Implementierung der Methoden equals() und hashCode() exemplarisch für einige Persistenzobjekte, da ich eine ähnliche Implementierung für alle Objekte benutze.

Mit weiteren Tests verifiziere ich die Logik und den Webservice und schließe damit diese Phase ab.