• Keine Ergebnisse gefunden

Tests ausführen

N/A
N/A
Protected

Academic year: 2022

Aktie "Tests ausführen"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwaretesten mit JUnit

Eine Einführung

für die

(2)

Tests ausführen

• Compilieren des Compilers und der Testfälle:

> javac -classpath .;junit.jar ssw/mj/*.java ssw/mj/test/*.java

• Ausführen aller Testfälle (= AllTests.main )

> java -cp .;junit.jar ssw.mj.test.AllTests

• Ausführen der Token Tests mit dem Text UI

> java -cp .;junit.jar junit.textui.TestRunner ssw.mj.test.TokenTest

• Starten der JUnit-Swing-Oberfläche

> javaw -cp .;junit.jar junit.swingui.TestRunner

(3)

JUnit Swing UI

Failure:

gibt Punkteabzüge

Error:

(4)

Errors & Failures in JUnit

• Error

– unvorhergesehene Errors oder Exceptions (=

java.lang.Throwable

)

• Failure

– vom Tester vorausgesehener Fehlerfall – durch

assert

-Methode abgefragt

– durch

junit.framework.AssertionFailedError

angezeigt

In

TestCase.run

-Methode:

try {

runTest();

} catch (AssertionFailedError e) { result.addFailure(this, e);

(5)

Hilfsfunktionen in Klasse Scanner

• initScanner setzt

– Eingabe von String statt Datei

– Ausgabe auf

TestPrintWriter

statt

System.out initScanner (String s) {

output = new TestPrintWriter();

Scanner.init(new StringReader(s), output);

}

• CheckNext

– zum sequentiellen Überprüfen der gelieferten Tokens (überladen) checkNext (int kind, int line, int col)

checkNext (int kind, int line, int col, String string)

(6)

Hilfsklasse TestPrintWriter

• print - und println -Methode aus java.io.PrintWriter überschrieben Ö speichert Ausgabe zeilenweise in einer Liste

• erlaubt Hinzufügen von erwarteten Zeilen ( addExpectedLine )

• automatisiert Vergleich der tatsächlichen mit der erwarteten

Ausgabe ( verify )

(7)

Informationsquellen

• JUnit: http://junit.org

– Doku: Kent Beck, Erich Gamma: JUnit Cookbook,

JUnit Test Infected: Programmers Love Writing Tests, JUnit: a Cook's Tour, JUnit FAQ, JUnit JavaDoc

• WWW:

– Frank Westphal: Unit Testing mit JUnit,

http://www.frankwestphal.de/UnitTestingmitJUnit.html

– Jeff Langr: Evolution of Test and Code Via Test-First-Design.

Practitioner Report, OOPSLA 2001,

http://www.objectmentor.com/resources/articles/tfd.pdf

• Bücher:

Referenzen

ÄHNLICHE DOKUMENTE

– H¨ andische Typisierung aller Testf¨ alle der abstrakten Syntax (als Eingabe f¨ ur die Codeerzeugung). – JUnit–Tests f¨ ur die Typisierung

JUnit Test Infected: Programmers Love Writing Tests, JUnit: a Cook's Tour, JUnit FAQ, JUnit JavaDoc.

Auf  der Homepage  finden  Sie  vorgegebene  Klassen  für  die  Implementierung.  Viele  Klassen sind  für  diese  Übung  noch  nicht  nötig,  sondern  werden 

– Testgetriebene Entwicklung: Erst testen, dann programmieren – Alle Testfälle häufig ausführen (nach jeder Programmänderung) – Jeder Testfall testet nur eine bestimmte

Für diese Übung brauchen Sie die Klassen Scanner, Token und Errors im Package ssw.mj.. Die Klassen Token und Errors sind bereits fertig

 Eine Suite von Test wird dabei durch ein TestSuite Objekt definiert.  Mit JUnit können beliebig viele Test in einer TestSuite zusammengefasst

assertEquals(”Optional assertion message.”, 1, 1); assertEquals(1, 1, ”Optional assertion message.”);. assertArrayEquals(”Optional message.”, a1, a2); assertArrayEquals(a1,

Testfall zu einer Klasse erstellen (eigentlich: Testklasse mit Testfällen erstellen)... Testen