Labor – Assoziationen: PLÜ-Übg.bsp. umstellen auf Util, Testklasse
Führe folgende Arbeitsschritte durch:
-
Erstelle ein neues BlueJ-Projekt: Lab6-Util-Testklasse.
-
Kopiere aus den Übungsbeispielen die beiden Klassen Zahlenvergleich und Rechteck in das neue Projekt.
-
Erstelle mithilfe der Theorie-Unterlage Assoziationen die Klasse Util (mit den Methoden
prn(…)
,pr(…)
undpn()
) -
Erstelle in jeder anderen Klasse, in der Bildschirm-Ausgaben benötigt werden, nach Anleitung im obigen Dokument (Assoziationen) eine Instanzvariable u der Klasse Util und weise ihr en neu instanziertes Util-Objekt zu
-
Nun sind ALLE Verwendungen von System.out.print… durch die entsprechende Util-Methode zu ersetzen.
-
Erstelle eine Test-Klasse UebungsBspTest mit Tests für die beiden Klassen:
-
Diese benötigt keinen Konstruktor (wenn keiner da ist, erstellt Java im Hintergrund einen unsichtbaren, leeren Standardkonstruktor)
-
Erstelle eine Test-Methode
testZahlenvergleich()
, in der min. 2 lokale Objektvariable vom Typ Zahlenvergleich und weisen ihnen jeweils ein neu instanziertes Objekt zu (siele Theorie-Dokument Assoziationen, Beispiel PersonUndAdresseTest, dortPerson p4 = …
). -
Rufe jede Methode mindestens einmal an einem der beiden Objekte auf und gib den Rückgabewert (falls vorhanden) aus. Davor Info-Ausgabe wie unten näher beschrieben
-
Erstelle 2 Test-Methoden
testRechteckNiceCases()
undtestRechteckBadCases()
und eine weitere MethodetestRecheckAll()
, die nur die beiden anderen Testmethoden aufruft.
Innerhalb der beiden ersten Methoden: analog zu oben, wobei in "NiceCases" reguläre Fälle (ohne Fehlermeldungen) enthalten sind, in "BadCases" diejenigen Fälle, wo die Eingabeprüfung Fehlermeldungen produziert etc.. -
Vor jedem Test ist auszugeben, welche Methode mit welchen Eingabeparametern aufgerufen wird, was als Rückgabewert (wenn nicht void) und was als Ausgabe erwartet wird.
Eine optisch möglichst analoge "Ankündigung" macht den visuellen Vergleich einfacher - siehe Theorie-Text und -Beispiel.
-