Java-Testprozesse – Teil 2

java-tasten

 Schritt 3: Erstes Design

Nachdem wir die Grammatik aus RFC 2396 vereinfacht haben, ohne die Semantik zu ändern, erhalten wir die folgende Grammatik:

Alle Grammatikvariablen, die dem Kunden zur Verfügung stehen sollen, sind mit ‚(s)‘ gekennzeichnet. Die erste Idee, einen Parser durch Erstellen einer Methode für jede linke Seite (LHS) zu implementieren, kann jetzt verfeinert werden. Der letzte Regelblock beschreibt Zeichensätze.

Diese können von den übrigen Regeln getrennt werden, wenn die rechte Seite (RHS) Variablen enthält, die keine Zeichenklassen sind oder eine LHS haben, deren Wert gespeichert werden soll.

Nach unseren bisherigen Kenntnissen können wir folgende Kurse planen:

URL.java: Enthält alle Teile einer URL, die in Teile zerlegt sind.
Parser.java: Realisiert alle Regeln mit Nicht-Zeichenklassenvariablen in ihrer RHS.
URLCharacter.java: Enthält Methoden zur Unterscheidung der Zeichenklassen.

Diese Klasse realisiert die meiste Arbeit der lexikalischen Analyse von URL-Strings.
InvalidURLException: Wird ausgelöst, wenn der Parser eine URL-Zeichenfolge nicht erfolgreich analysiert.

Mit der Grammatik und den Namen der Klassen, die wir verwenden möchten, haben wir die ersten Schritte des Designs unternommen. Nun fahren wir fort und erstellen ein Together-Projekt und erste UML-Diagramme. Wenn Sie es vorziehen, JUnit und JUnitX manuell zu verwenden, können Sie den nächsten Abschnitten folgen, ohne Together auszuführen. Es werden Snapshots aller Dateien für jeden Lernschritt bereitgestellt, einschließlich aller erforderlichen Standalone-Build-Dateien.

Schritt 4: Projekteinrichtung

Wenn Sie ein erfahrener Together-Benutzer sind, können Sie die Projektschnappschüsse des Lernprogramms verwenden, die mit den Quelldistributionen JUnitX und XPTest (Pfadbeispiel) verfügbar sind, und diesen Teil des Lernprogramms überspringen.

Die Projektdateien von Together arbeiten unabhängig vom Speicherort des Projektpfads. Sie verweisen jedoch auf das JDK, sodass Sie möglicherweise die Projektdatei bearbeiten müssen, um den Speicherort Ihres JDK wiederzugeben.

Sie können auch Code aus Anhang B einfügen, um Arbeit zu sparen.

Für diejenigen, die noch nie viel mit Together gearbeitet haben, sind hier meine empfohlenen Schritte, um ein neues Projekt einzurichten.

Stellen Sie sicher, dass Sie eine geeignete JDK- und Together-Version installiert haben (Einzelheiten finden Sie in Anhang A).

Erstellen Sie eine Verzeichnisstruktur

Erstellen Sie nach dem Erstellen eines Projektverzeichnisses ’src‘ und ‚diagrams‘ als Unterverzeichnisse.
Starten Sie den ‚New Project Expert‘
Starten Sie Together und wählen Sie im Menü Datei von Together die Option ‚Neuer Projekt-Experte …‘, um ein Beispielprojekt zu erstellen.

Klicken Sie auf ‚Weiter>‘ und

Wählen Sie den Quellpfad

Geben Sie hier das Unterverzeichnis ’src‘ Ihres Projektpfads ein:

Diagrammpfad auswählen

Wählen Sie im nächsten Dialogfeld „Nein, ich möchte sie trennen“, um UML-Diagrammbilder in einem separaten Pfad zu platzieren.
Diagrammpfad auswählen
Im folgenden Dialog können Sie das Unterverzeichnis ‚diagrams‘ Ihres Projektpfads eingeben, um die UML-Diagramme dort abzulegen.
Wählen Sie den ersten Diagrammtyp
Behalten Sie im nächsten Dialogfeld die vorgeschlagenen Einstellungen bei: ‚Klasse‘ ist der ursprüngliche Diagrammtyp und die Option ‚Paketabhängigkeiten anzeigen‘ ist ausgewählt.
Archive importieren (nur Together 5.0 und älter)
JUnitX und XPTest sind in Together 5.5 und höheren Versionen enthalten. Für ältere Releases müssen Sie JUnitX zur Liste der erforderlichen Archive im letzten Dialogfeld hinzufügen, indem Sie auf die Schaltfläche „Zip / Jar hinzufügen“ klicken:

Wenn JUnitX in diesem Dialogfeld nicht aufgeführt ist, erstellt Together Testfälle mit einer fehlenden übergeordneten Klasse. Daher werden sie später von XPTest nicht kompiliert oder erkannt.
Wenn Sie fertig sind, klicken Sie auf ‚Fertig stellen‘, um das Projekt zu erstellen.

Jetzt können wir die ersten UML-Diagramme erstellen. Da meine Domain extreme-java.de ist, befindet sich jeder Code im Paket de.extremejava.

Da nicht alle Klassen öffentlich sein müssen, werden die parserbezogenen Klassen in einem Unterpaket namens url abgelegt. Erstellen Sie die erforderlichen UML-Elemente mithilfe der folgenden Schritte:

Erstellen Sie das Paket de.extremejava.url

Klicken Sie auf den -Button und dann auf den leeren UML-Diagrammbereich rechts, um ein Paketelement zu erstellen. Überschreiben Sie das ausgewählte Namensfeld mit ‚de‘ und drücken Sie die Eingabetaste, um das erste Paket zu erstellen:

Doppelklicken Sie auf das Element ‚de‘-package, um das neue Paket zu öffnen. Wiederholen Sie danach den obigen Vorgang, um die Pakete ‚de.etremejava‘ und ‚de.extremejava.url‘ zu erstellen.

Erstellen Sie die Klassen

Öffnen Sie das ‚url‘-Paket und klicken Sie auf den -Button und im leeren UML-Diagramm des‘ url‘-Pakets, um das erste Klassenelement zu erstellen. Nennen Sie es „URL“:

KVM für Linux

 Die KVM

(K Virtual Machine) ist die Referenzimplementierung der Java 2 Micro Edition (J2ME) von Sun für den Palm. Die CLDC (Connected Limited Device Configuration) ist eine Version des J2ME, die für kleine PDAs und Mobiltelefone geeignet ist.

Das KVM / CLDC enthält Entwicklungstools zur Vorbereitung von Java-Anwendungen unter Solaris und Windows.

Während meines Fluges zur JavaOne-Konferenz 2000 hatte ich 10 Stunden, einen Nur-Linux-Laptop, einen Palm und den KVM / CLDC 1.0 FCS-Download. Sie können sich meine Stimmung vorstellen, als ich herausfand, dass es nur Solaris und Windows unterstützt.

Also portierte ich die Entwicklungstools auf Linux und konnte mein erstes Java-Programm ausführen, das unter Linux für den Palm in the Sky kompiliert wurde.

Später wurde der Palm-ähnliche Emulator auch von mir portiert und die Jungs von JavaSoft boten mir die Möglichkeit, das TCK (Technology Compatibility Kit) auf meinem Port auszuführen. Alle Tests waren erfolgreich, daher ist der KVM für Linux-Patch ziemlich sicher.

Einige Wochen später lud mich JavaSoft in ihre Labs im Valley ein, wo wir meinen Patch in die nächste J2ME-Version integrierten. Da Sun in der Zwischenzeit die neue Version veröffentlicht hat, ist mein Patch jetzt veraltet. Aber ich habe das alte Material aus historischen Gründen behalten.)

Um eine Vorstellung davon zu bekommen, wie meine erste Version des Ports funktioniert hat, können Sie meinen Artikel bei KVMWorld lesen.

In der Oktober-Ausgabe des iX-Magazins finden Sie auch einen Artikel (lokale Kopie), in dem beschrieben wird, wie Sie eine Toolkette für KVM unter Linux einrichten. Die in diesem Artikel verwendeten Downloads finden Sie im Abschnitt Links auf dieser Seite.

Die Installation und Kompilierung des KVM unter Linux ist in meinem Patch beschrieben. Wenn Sie möchten, können Sie den KVM für Linux-Patch 1.4 trotzdem herunterladen.

PBM2Palm

Zusammen mit dem Linux-Patch habe ich eine kleine Hilfsanwendung entwickelt, die ein PBM-S / W-Image in eine Java-Klasse konvertiert, die mit KVM / CLDC direkt angezeigt werden kann.

Da Symbole möglicherweise nur 32 Pixel breit sind, unterteilt das Dienstprogramm die eingegebenen Bilder in Spalten und erstellt eine Klasse, in der die Bilder an einer bestimmten Position angezeigt werden.

Das mit dem Palm Pilot gezeigte Beispielbild wurde mit dem PBM2Palm-Konverter angezeigt: