7.3. Checkerberry web

Dieser Abschnitt beschreibt Vorgehensweisen, die sich bei der Verwendung von checkerberry web als sinnvoll erwiesen haben.

7.3.1. Anwendungsspezifische Modellschicht

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.

Abbildung 7.4. UML-Klassenhierarchie der Modellklassen

UML-Klassenhierarchie der Modellklassen


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);
}