Dieser Abschnitt erklärt Ihnen, wie Sie Java-Elemente in der Workbench bearbeiten.
Doppelklicken Sie zum Öffnen der Datei junit.samples.VectorTest.java im Java-Editor auf die entsprechende Datei in der Sicht 'Paket-Explorer'.
Beachten Sie die Hervorhebung der Syntax. Im Folgenden sind Beispiele für Java-Quellen aufgeführt, die unterschiedlich wiedergegeben werden:
Sehen Sie sich jetzt die Sicht 'Gliederung' an. Diese Sicht zeigt eine Gliederung der Java-Datei einschließlich der Paketdeklaration, Importdeklarationen, Felder, Typen und Methoden an.
Die Sicht 'Gliederung' gibt auch an, ob ein Java-Element statisch, abstrakt, final, etc.
ist. Ebenso zeigt die Sicht 'Gliederung' an, ob eine Methode von einer Basisklasse außer
Kraft gesetzt ist () oder ob sie eine Methode von einer Schnittstelle implementiert
(
).
Schalten Sie in der Symbolleiste der Sicht 'Gliederung' die Schaltflächen 'Felder ausblenden', 'Statische Member ausblenden' und 'Nicht öffentliche Member ausblenden' um, um die Anzeige der Sicht zu filtern.
Schalten Sie in der Sicht 'Gliederung' die Schaltfläche 'Sortieren' um, um die Java-Elemente alphabetisch zu sortieren anstatt in der Reihenfolge, in der sie in der Java-Datei erscheinen.
Sie können den Quellcode bearbeiten, indem Sie entweder die gesamte Java-Datei anzeigen lassen, oder Sie können die Anzeige auf ein einzelnes Java-Element einschränken. Klicken Sie in der Symbolleiste auf die Registerkarte 'Nur Quelle des ausgewählten Elements anzeigen'.
Wählen Sie dann in der Sicht 'Gliederung' ein beliebiges Element aus. Sie können feststellen, dass nur das ausgewählte Element im Java-Editor angezeigt wird.
Klicken Sie erneut auf die Schaltfläche 'Nur Quelle des ausgewählten Elements anzeigen', um wieder die gesamte Java-Datei anzuzeigen.
Wählen Sie in der Sicht 'Gliederung' verschiedene Elemente aus. Sie können feststellen, dass diese nun wieder in einer Ansicht für die gesamte Datei im Editor angezeigt werden. Die Auswahl der Sicht 'Gliederung' ist nun auf der vertikalen Skala an der linken Begrenzung des Java-Editors mit einem Bereichsanzeiger gekennzeichnet.
Vergewissern Sie sich, dass die Schaltfläche für alphabetisches Sortieren in der Symbolleiste der Sicht 'Gliederung' ausgeschaltet ist.
Fügen Sie eine Methode hinzu, indem Sie im Java-Editor Folgendes am Ende der Datei VectorTest.java (jedoch vor den rechten eckigen Klammern) eingeben:
public void testSizeIsThree() {
Sobald Sie den Methodennamen im Editorbereich eingeben, erscheint die neue Methode ganz unten in der Sicht 'Gliederung'.
Klicken Sie auf die Schaltfläche ' Speichern'.
Die Kompiliereinheit wird automatisch kompiliert, wobei Fehler in den Sichten 'Paket-Explorer' und 'Tasks' sowie auf der vertikalen Skala erscheinen. In der Sicht 'Paket-Explorer' werden die Fehler bis zu dem Projekt der Kompiliereinheit weitergegeben, die den Fehler enthält.
Vervollständigen Sie die neue Methode, indem Sie Folgendes eingeben:
assertTrue(fFull.size() == 3); }
Speichern Sie die Datei.
Sie können feststellen, dass die Fehleranzeiger nicht mehr zu sehen sind.
In diesem Abschnitt erfahren Sie, wie Sie mit der Funktion des lokalen Protokolls zu einer früher gespeicherten Version eines individuellen Java-Elements umschalten können.
Löschen Sie die soeben erstellte Methode, indem Sie diese in der Sicht 'Gliederung' auswählen und in ihrem Kontextmenü auf Löschen klicken.
Fügen Sie eine neue Version der Methode hinzu, indem Sie im Java-Editor Folgendes am Ende der Datei VectorTest.java eingeben:
public void testSizeIsThree() { fFull.add(0, new Integer(0)); fFull.remove(new Integer(3)); assertTrue(fFull.size() == 3); }
Speichern Sie die Datei.
Wählen Sie in der Sicht 'Gliederung' die Methode testSizeIsThree()
aus und in ihrem Kontextmenü die Option 'Aus lokalem Protokoll ersetzen'.
Die Liste 'Lokales Protokoll' im Dialog 'Java-Element aus lokalem Protokoll ersetzen' enthält die unterschiedlichen gespeicherten Versionen dieses Elements. Im Teilfenster für den Vergleich mit der Java-Quelle sind die Unterschiede zwischen der ausgewählten Protokollressource und der vorhandenen Workbench-Ressource angegeben.
Wählen Sie im Teilfenster 'Lokales Protokoll' die gelöschte Version aus, und klicken Sie anschließend auf Ersetzen.
Im Java-Editor wird die Methode durch die ausgewählte Protokollversion ersetzt.
Speichern Sie die Datei.
Öffnen Sie im Java-Editor die Datei junit.samples.VectorTest.java.
Gehen Sie zur Methode testSizeIsThree()
, indem Sie sie in der Sicht 'Gliederung' auswählen.
Fügen Sie folgende Zeilen am Ende der Methode hinzu:
Vector v = new Vector(); for (int i=0; i<3; i++) v.addElement(new Object()); assert
Setzen Sie den Cursor auf das Ende des Worts assert
, und drücken Sie die Taste Strg+Leer, um die Unterstützung für Inhalt zu aktivieren.
Das Fenster der Unterstützung für Inhalt erscheint mit einer Vorschlagsliste. Blättern Sie in der Liste, um die Auswahlmöglichkeiten anzusehen.
Geben Sie bei weiterhin aktivem Fenster der Unterstützung für den Inhalt den Buchstaben
't' nach dem Wort assert
(ohne dazwischen liegendes Leerzeichen) ein. Die Liste ist nun eingegrenzt und zeigt nur die Einträge an, die mit 'assert' beginnen.
Wählen Sie einzelne Elemente in der Liste aus, und ziehen Sie den Mauszeiger über die Elemente, um die verfügbaren Javadoc-Hilfetexte zu den Elementen anzuzeigen.
Wählen Sie in der Liste die Option assertTrue(boolean)
aus, und drücken Sie die Eingabetaste.
Der Code für die Methode assertTrue(boolean)
wird eingefügt.
Vervollständigen Sie die Zeile wie folgt:
assertTrue(v.size() == fFull.size());
Speichern Sie die Datei.
Öffnen Sie im Java-Editor die Datei junit.samples.VectorTest.java.
Fügen Sie eine neue Methode hinzu, indem Sie Folgendes eingeben:
public void testValues() { Integer[] expected= new Integer[3]; for
Setzen Sie den Cursor an das Ende des Worts for
, und drücken Sie auf Strg+Leer, um die Unterstützung für Inhalt zu aktivieren.
Wählen Sie den Eintrag 'for - iterate over array'
aus.
Die Schablone wird im Editor eingefügt, und i
wird hervorgehoben.
Der lokale Bereichsname wird automatisch ermittelt.
Drücken Sie die Eingabetaste, um die Schablone zu bestätigen.
Vervollständigen Sie die Schleife für for
wie folgt:
public void testValues() { Integer[] expected= new Integer[3]; for (int i= 0; i < expected.length; i++) { expected[i]= i + 1; } Integer[] actual= to
Setzen Sie den Cursor an das Ende des Worts to
, und drücken Sie auf Strg+Leer, um die Unterstützung für Inhalt zu aktivieren. Wählen Sie 'toarray - convert collection to array'
aus.
Die Schablone wird im Editor eingefügt, und type
wird hervorgehoben und ausgewählt.
Überschreiben Sie die Auswahl durch Eingabe von Integer
.
Der Typ des Bereichskonstruktors ändert sich synchron.
Geben Sie Tab ein, um collection
hervorzuheben und auszuwählen, und überschreiben Sie die Auswahl durch die Eingabe von fFull
.
Drücken Sie die Eingabetaste, um die Schablone zu bestätigen.
Fügen Sie folgende Codezeilen hinzu, um die Methode zu vervollständigen:
assertEquals(expected.length, actual.length); for (int i= 0; i < actual.length; i++) assertEquals(expected[i], actual[i]); }
Speichern Sie die Datei.
Öffnen Sie im Java-Editor die Datei junit.samples.VectorTest.java.
Löschen Sie die Importdeklarationen, indem Sie sie in der Sicht 'Gliederung' auswählen, und wählen Sie im Kontextmenü Löschen aus.
Wählen Sie im Kontextmenü des Editors die Option 'Importe verwalten' aus.
Die erforderlichen Importanweisungen werden am Beginn des Codes nach der Paketdeklaration hinzugefügt.
Alternativ hierzu kann die Option 'Importe verwalten' direkt über das Kontextmenü der Importdeklarationen in der Sicht 'Gliederung' aufgerufen werden.
Hinweis: Sie können die Reihenfolge der Importdeklarationen in Benutzervorgaben (Fenster > Benutzervorgaben > Java > Importe verwalten) angeben.
Speichern Sie die Datei.
In diesem Abschnitt lernen Sie, wie Sie den Code des Konstruktors von junit.framework.TestSuite verbessern können. Um den Zweck des Codes deutlicher herauszustellen, werden Sie den Code extrahieren, der Anwendungsbeispiele aus den Basisklassen in einer neuen Methode namens collectTestMethods erfasst.
Wählen Sie in der Datei junit.framework.TestSuite.java den folgenden Codebereich aus:
Class superClass= theClass; Vector names= new Vector(); while (Test.class.isAssignableFrom(superClass)) { Method[] methods= superClass.getDeclaredMethods(); for (int i= 0; i < methods.length; i++) { addTestMethod(methods[i], names, constructor); } superClass= superClass.getSuperclass(); }
Wählen Sie den Codebereich unter Verwendung der Funktion Auswahl erweitern aus:
TestSuite(Class)
.while
.Wählen Sie im Kontextmenü der Auswahl im Editor die Option Refactor > Methode extrahieren... aus.
Geben Sie im Feld Methodenname den Wert collectInheritedTests ein, und klicken Sie dann auf Weiter.
Auf der Seite mit der Voranzeige für die Umgestaltung werden die Änderungen angezeigt, die vorgenommen werden.
KLicken Sie auf Fertig stellen, um die Methode zu extrahieren.
Gehen Sie zu der extrahierten Methode, indem Sie sie in der Sicht 'Gliederung' auswählen.
Öffnen Sie im Java-Editor die Datei junit.samples.money.MoneyTest.java.
Wählen Sie in der ersten Zeile der Klassendeklaration 'MoneyTest' die Superklassenspezifikation 'TestCase' aus. Führen Sie anschließend einen der folgenden Schritte aus:
Hinweis: Dieser Befehl funktioniert auch für Methoden und Felder.
Die Superklasse 'TestCase' wird im Editorbereich geöffnet und außerdem in der Sicht 'Gliederung' dargestellt.
Klicken Sie auf die Editorregisterkarte von TestCase.java, um den Editor zum aktiven Editor zu machen. Vergewissern Sie sich, dass die Klassendeklaration immer noch ausgewählt ist, und führen Sie einen der folgenden Schritte aus:
Die Sicht 'Hierarchie' wird geöffnet, und die Klasse 'TestCase' wird in dieser Sicht angezeigt.
Hinweis: Sie können in der Sicht 'Hierarchie' auch Editoren für Typen und Methoden öffnen.
Java-Sichten
Java-Editor
Refactoring-Unterstützung
Schablonen
Java-Editor verwenden
Elemente anzeigen und verdecken
Einzelne Elemente oder ganze Java-Dateien anzeigen
Elemente in Java-Sichten sortieren
Lokales Protokoll verwenden
Unterstützung für Inhalt verwenden
Schablonen verwenden
Importanweisungen verwalten
Refactoring
Refactoring mit Voranzeige
Sicht 'Hierarchie' verwenden
Typhierarchie für Java-Element öffnen
Typhierarchie für aktuelle Textauswahl öffnen
Editor für ein ausgewähltes Element öffnen
Sicht 'Java-Gliederung'
Unterstützung für Java-Inhalt
Benutzervorgaben für Schablonen
Benutzervorgaben für die Importverwaltung
Benutzervorgaben für Java-Editor
Fehler bei Methodenextrahierung
Sicht 'Typhierarchie'