PTP - Java, JUnit, Java-IDEs
Java Dokumentation
Java Entwicklungsumgebungen im IRZ
- unter Windows und Linux:
Eclipse, BlueJ - unter Windows:
NetBeans (z.T.)
Verwendung von Eclipse und NetBeans auf den PCs
Im IRZ-PC-Pool sind neben BlueJ auch Eclipse (und zum Teil auch NetBeans) als Java-IDEs im Multiuser-Modus installiert. Beim ersten Aufruf durch eine(n) BenutzerIn wird nach einem Verzeichnis gefragt, in dem die persönlichen Dateien abgelegt werden sollen. Dazu gehören u.a. auch die Dateien der Tutorials.
Es bieten sich dafür zwei Orte an:
- ein Unterordner im persönlichen Home-Verzeichis unter Z:\...
- ein Unterordner des Verzeichnisses E:\Benutzer\ (lokal)
Die Daten sollten möglichst mit einem (SVN-)Repository synchronisiert werden.
Unabhängig davon können jederzeit andere Ordner zur Dateiablage gewählt werden. Java 7 ist Standard auf den PCs unter Windows und Linux.
Dokumentation - Verwendung von javadoc
Java-Quelltexte sollten stets mit /** ...*/ -javadoc-Kommentaren versehen werden, um zum einen eine umfassende, aktuelle und vernünftige interne Dokumentation mitzuführen, zum anderen die Generierung der (externen) Schnittstellen- und Benutzungsbeschreibung einfach und konsistent vorzubereiten.
Dabei sollten insbes. die javadoc-Makros
- @author -- Autoren
- @version -- Version und Datum
- @param -- Parameter
- @return -- Rückgabewerte
- @exception -- ausgelöste Fehlerbehandlung(en)
verwendet werden (vgl. PTP-Bsp.).
Die angeführten Kommentare erleichtern zudem dem Korrektor die Arbeit...
Achtung: Bei Verwendung von javadoc ab 2.x darf kein Doppelpunkt (:) direkt hinter dem tag stehen, sonst wird der tag ignoriert! Ebenso müssen bei @param die Parameterbezeichner plus Kommentar angegeben werden.
Einbindung von JUnit 4
Am IRZ ist JUnit als Standard-Erweiterung im Java-System eingetragen. Es sollte daher automatisch gefunden und benutzt werden können.
Falls das nicht klappt oder auf einem Rechner gearbeitet wird, der nicht vom IRZ betreut wird, ist ein dann Eintrag im Suchpfad notwendig, damit die JUnit-Klassen und Packages gefunden werden.
Das kann unter Linux
- entweder über die Option -classpath <Pfad>:<Pfad> .... bei den Java-Kommandos
- oder das Setzen der CLASSPATH-Umgebungsvariable
erfolgen. Bsp. für Version 4.8.2:
tcsh: setenv CLASSPATH .:/local/java/junit4.8.2/junit-4.8.2.jar[:$CLASSPATH] bash: export CLASSPATH=.:/local/java/junit4.8.2/junit-4.8.2.jar[:$CLASSPATH]
$CLASSPATH am Ende der Zeile darf nur dann aufgeführt werden, wenn die Variable bereits gesetzt ist!
Der . (Punkt) sollte stets mit eingebaut werden, damit Klassen in dem aktuellen Verzeichnis weiterhin gefunden werden!!!
Auf den Windows-PCs liegt JUnit unter C:\programme\Junit\*. Es sind die Versionen 4.10 (in Eclipse eingebaut), z.T. 4.8.2 und 4.11 vorhanden. Mittels
set classpath=.;C:\Programme\junit\junit4.11;%classpath%
kann im "CMD"-Fenster die Variable analog zu Unix gesetzt werden.
Für die Benutzerumgebung unter Windows kann ausserdem über Eigenschaften -> Umgebungsvariablen des Arbeitsplatzes ein Eintrag für den CLASSPATH gesetzt werden. Analog können andere JUnit-Versionen gesetzt werden.
Hinweis:
Sollte ein Paket / eine Klasse nicht gefunden werden, kann man sich mittels der Option -verbose beim Aufruf von java alle geladenen Klassen anzeigen lassen!
Start eines JUnit-Testlaufs
JUnit 4.x arbeitet mit Annotationen (@Test, @Before, @After, ...
)
Start von der Kommandozeile (classpath zum JUnit4-jar muss gesetzt sein):
java org.junit.runner.JUnitCore [<TestKlasse>]
Alternativ kann im Testprogramm in der main
-Methode der Start erfolgen:
...
org.junit.runner.JUnitCore.main(<TestKlasse>.class.getName());
...
Die Integration in IDEs (Eclipse, Netbeans,...) ist vorhanden bzw. einfach konfigurierbar.
Für JUnit 3.x gilt:
Der einfachste und schnellste Testlauf erfolgt im Textmodus. Dazu baut man am besten in main
folgendes ein:
public static void main (String[] args) { junit.textui.TestRunner.run (suite()); }
Die grafischen Varianten (AWT bzw. Swing) können durch Aufruf der folgenden Varianten gestartet werden:
java junit.awtui.TestRunner [<TestKlasse>] oder java junit.swingui.TestRunner [<TestKlasse>]
Gibt man die Testklasse nicht an, so kann man sie in dem gestarteten Fenster benennen. Die swingui
-Variante bietet mehr Möglichkeiten!
Links zu Junit-Infos
PS: Hinweis für Nutzer von JUnit 3.x:
Ab JDK 1.4 ist assert
ein Schlüsselwort. Die Syntax wurde zudem geändert. Daher werden die von älteren JUnit-Versionen(3.x) verwendeten assert()
-Anweisungen mit einer Fehlermeldung quittiert!
Die JUnit-Readme-Datei weist darauf hin, dass assert()
als deprecated markiert ist und statt dessen die neue Methode assertTrue()
verwendet werden soll!
(alternative Abhilfe: Aufruf javac -source 1.3 ...
Die Option -nowarn
unterdrückt die Warnungen.)