Dr. Johannes Mayer Institut für Angewandte Informationsverarbeitung 23. Mai 2007
Ralph Guderlei Blatt 4


Uni Logo



Softwaretest (SS 2007)


Abgabetermin: 06. Juni 2007

Design for Testability

Im letzten Blatt durften Sie sich ja schon mit einem einfachen Shopsystem beschäftigen. Nachdem Sie Ihre Aufgaben zufriedenstellend gelöst haben bekommen Sie nun den Auftrag, sich mit dem eigentlichen Bestellsystem auseinanderzusetzen. Dieses besteht aus der Klasse Shop.java. Für unterschiedliche Vorgänge greift das Bestellsystem dabei auf die Datenbank des Warenwirtschaftssystems zurück. Die Entwickler haben sich schon viel Mühe gemacht, die Datenbankzugriffe in eine eigene Klasse ausgelagert.

Das Bestellsystem erzeugt einen neuen Warenkorb, kann Waren in diesen Warenkorb hineinlegen und sollte dabei prüfen, ob die Ware tatsächlich verfügbar ist (isAvailable()). Beim Abarbeiten der Bestellung wird der Warenkorb dem Warenwirtschaftssystem übergeben (store()) und dann die Auslieferung angewiesen (ship()).

Sie wollen (in der nächsten Aufgabe ;-)) aber das Bestellsystem unabhängig von der Datenbank testen. Dazu müssen Sie es möglich machen, das Objekt für den Datenbankzugriff für den Test zu kontrollieren.

Tipp: Definieren Sie sich ein passendes Interface und ändern Sie die Aufrufe im Programm entsprechend ab. Den Quellcode finden Sie in den Beispielen.

Mocks

In der ersten Aufgabe haben Sie also die zu testende Klasse nun entsprechend vorbereitet. Nun ist es an der Zeit, ein Mock-Objekt zu entwickeln, welches in der Lage ist zu überprüfen, ob die Methoden in der richtigen Reihenfolge und mit den richtigen Parametern aufgerufen wurden.

Der Test soll wieder mit JUnit implementiert werden. Auf Lösungen des vorherigen Blattes darf dabei zurückgegriffen werden.

Viel Erfolg!



Ralph Guderlei 2007-05-23