Dieser Abschnitt beschreibt Vorgehensweisen, die sich bei der Verwendung von checkerberry web als sinnvoll erwiesen haben.
Bevor die Modellklassen für eine konkrete Anwendung erstellt
werden, sollte eine weitere abstrakte Schicht eingezogen werden. Ein
Ziel des Modellansatzes besteht darin, generelle Funktionalität zu
kapseln und für alle Tests zur Verfügung zu stellen. Aus diesem Grund
sollten für die Klassen RemoteControlComponent
,
AbstractRemoteControlPage
und
AbstractRemoteControlPortlet
eigene abstrakte Klassen
definiert werden, von denen alle konkreten Ausprägungen erben z.B.
WikipediaPage
oder
LeoPortlet
.
Die Abbildung zeigt eine exemplarische Klassenhierarchie für eine
anwendungsspezifische Modellschicht. In den abstrakten Klassen
MyAppRemoteControlPage
,
MyAppRemoteControlComponent
und
MyAppRemoteControlPortlet
können allgemeine
Funktionalitäten der entsprechenden Anwendung gekapselt werden.
Die Methode
AbstractRemoteControlPage.createComponentProxy
sollte
dann wie folgt überschrieben werden:
Beispiel 7.1. AbstractRemoteControlPage createComponentProxy
protected MyAppRemoteControlComponent createComponentProxy( String elementLocator) { return new MyAppRemoteControlComponent(this, elementLocator); }