fh-hof tools richard göbel. fh-hof tools für die veranstaltung junit: testen ant: build-tool...

Download FH-Hof Tools Richard Göbel. FH-Hof Tools für die Veranstaltung JUnit: Testen ANT: Build-Tool Eclipse: Entwicklungsumgebung

Post on 05-Apr-2015

102 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Folie 1
  • FH-Hof Tools Richard Gbel
  • Folie 2
  • FH-Hof Tools fr die Veranstaltung JUnit: Testen ANT: Build-Tool Eclipse: Entwicklungsumgebung
  • Folie 3
  • FH-Hof JUnit JUnit untersttzt automatisierte Softwaretests Junit ermglicht Blackbox Tests Whitebox Tests auf Methodenebene Junit instrumentiert nicht den Programmcode, um den Abdeckungsgrad eines Tests festzustellen Zwei neue Themen: Annotations Import statischer Funktionen und Variablen
  • Folie 4
  • FH-Hof Annotation Einfgen von Zusatzinformationen in Quellcode (seit Version 1.5) Annotationen: beginnen mit dem Zeichen @...... werden von dem Compiler nicht bersetzt...... geben aber Zusatzinformation fr Tools whrend bersetzung, "Deployment" oder zur Laufzeit
  • Folie 5
  • FH-Hof Compileranweisung @SuppressWarnings public class TestKlasse { @SuppressWarnings("unchecked") LinkedList genList (int n) { LinkedList list = new LinkedList(); for (int i = 0; i < n; i++) list.add(""); return list; }
  • Folie 6
  • FH-Hof Compileranweisung @Override public class MyWindowListener extends WindowAdapter { @Override // windowClosing waere richtig public void windoclosing(WindowEvent e) { System.exit(0); }
  • Folie 7
  • FH-Hof Compileranweisung @Deprecated public class TestKlasse { @Deprecated void veryOldFunction () {... }
  • Folie 8
  • FH-Hof Definition einer eigenen Annotation import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @interface MethodenAnnotation { String erzeugtVon(); int version() default 1; String[] geaendertVon(); }
  • Folie 9
  • FH-Hof Anwendung der Annotation @MethodenAnnotation ( erzeugtVon="Hans", version=1, geaendertVon= { "Elke", "Joe", "Mary" }) void someFunction () {... }
  • Folie 10
  • FH-Hof Abfrage der Annotation zur Laufzeit Class cl = Class.forName("TestKlasse"); Method me = cl.getDeclaredMethod("someFunction"); Class an = Class.forName("MethodenAnnotation"); MethodenAnnotation ma = (MethodenAnnotation) me.getAnnotation(an); System.out.println(ma.erzeugtVon());
  • Folie 11
  • FH-Hof Import fr JUnit Import von Klassen des Package "junit": import org.junit.*; Import statischer Elemente der Klassen "Assert" und "JUnitCore" import static org.junit.Assert.*; import static org.junit.runner.JUnitCore.*;
  • Folie 12
  • FH-Hof Einsatz vonJUnit JUnit Open Source Software IBM's Common Public License Version 0.5 verfgbar durch SourceForge: http://junit,org Anwendung Realisierung eines beliebigen Java-Programms (wie bisher) JAR-Datei in den Classpath eintragen (z.B. junit-4.4.jar) Implementierung zustzlicher Testklassen Start der Tests java org.junit.runner.JUnitCore TestClass1,
  • Folie 13
  • FH-Hof Beispiele fr eine zu testende Klasse class Coordinate { int x = 0, y = 0; void setX(int x) {this.x = x;} void setY(int y) {this.y = y;} int getX(int x) {return x;} int getY(int y) {return y;} }
  • Folie 14
  • FH-Hof Beispiel fr eine Testklasse I class TestCoordinate { Coordinate c; @BeforeClass public static void setUpBeforeClass() throws { c = new Coordinate(); } @Before public void setUp() throws Exception { c.x = 0; c.y = 0; }...
  • Folie 15
  • FH-Hof Beispiel fr eine Testklasse II... @Test public void checkX() throws Exception { c.setX(3); assertEquals("Error X", 3, c.getX()); assertEquals("Side effect Y", 0, c.getY()); } @Test public void checkY() throws Exception { c.setY(5); assertEquals("Error Y", 5, c.getY()); assertEquals("Side effect X", 0, c.getX()); }}
  • Folie 16
  • FH-Hof Annotationen fr JUnit After AfterClass Before BeforeClass Ignore Test
  • Folie 17
  • FH-Hof Assertions assertEquals assertArrayEquals assertNull, assertNotNull assertFalse, assertTrue assertSame, assertNotSame assertThat fail
  • Folie 18
  • FH-Hof Assumptions static void assumeNoException(java.lang.Throwable t) static void assumeNotNull(java.lang.Object... objects) static void assumeThat(T value, org.hamcrest.Matcher assumption) static void assumeTrue(boolean b)
  • Folie 19
  • FH-Hof ANT "Build Tool" zur Erzeugung von Programmsystemen Akronym ANT "Ameise" "Another Neat Tool" Home http://jakarta.apache.org Werkzeug fr Java auf Java basierend
  • Folie 20
  • FH-Hof Beispiel fr Aktionen von Ant Kompilieren Testen JAR-Dateien erzeugen Javadoc generieren
  • Folie 21
  • FH-Hof Installation Umgebungsvariablen set ANT_HOME=... set JAVA_HOME=... set PATH=...;%ANT_HOME%\bin; Anweisungen fr ANT ber XML-Datei: build.xml
  • Folie 22
  • FH-Hof Beispiel fr eine Build-Datei Basis
  • Folie 23
  • FH-Hof Beispiel fr eine Build-Datei Jar-Datei
  • Folie 24
  • FH-Hof Beispiel fr eine Build-Datei JUnit-Test
  • Folie 25
  • FH-Hof Beispiele Aufrufe von ANT ant ant translate ant execute ant jtest ant pack
  • Folie 26
  • FH-Hof Basis project Attribut name: Bezeichnung Attribut default: Default-Target Attribut basedir: Basisverzeichnis target : Menge von Aufgaben (Tasks) Attribut name: Bezeichnung Attribut depends: Abhngigkeiten Attribut description: Kurzbeschreibung task: zu erledigende Aufgaben fr ein Target
  • Folie 27
  • FH-Hof Beispiele fr Tasks ant concat copy jar java javac delete mail move rmic sql tstamp
  • Folie 28
  • FH-Hof Properties Eine Property hat einen Namen und einen Wert Zugriff auf den Wert einer Property innerhalb eines Attributwerts ber ${... } Beispiele fr eingebaute Properties basedir : absolute Pfad des "basedir" ant.file: absolute Pfad der Build-Datei ant.version: Version von Ant ant.project.name: aktueller Projektname ant.java.version: aktuelle Java-Version
  • Folie 29
  • FH-Hof Build-Datei mit Properties I...
  • Folie 30
  • FH-Hof Build-Datei mit Properties II...
  • Folie 31
  • FH-Hof Bedingte Erzeugung von Targets.......
  • Folie 32
  • FH-Hof Hierarchisches Erzeugen von Systemen Die einzelnen Build-Dateien folgen der Package- Struktur Beispiel packages a, b, a.c, a.d, a.c.e Build-Dateien fr a, b, a.c, a.d, a.c.e Aufruf untergeordneter Build-Dateien aus der Build- Datei des jeweils bergeordneten Package
  • Folie 33
  • FH-Hof Task Ant antfile: Build-Datei (Default build.xml) dir: Basisverzeichnis target: welches Target soll erzeugt werden output: Dateiname fr Ausgabe dieses Kommandos inheritAll: Weitergabe aller Properties (Default: true) inheritRefs: Weitergabe aller Referenzen (Default: false)

Recommended

View more >