Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
- Hinzugefügt am 21.10.2002
(Ergänzt am 4.11.2002)
JUnit-Failures, obwohl (lt. Fehlermeldung) expected genau gleich
actual ist: Für die Ausgabe der erwarteten
(expected:) und tatsächlichen (but was:) Werte
in den JUnit-Fehlermeldungen wird die toString -Methode der
verglichenen Objekte aufgerufen. Bei Tokens werden dabei aber nicht
immer alle Attribute ausgegeben, obwohl sie in equals()
verglichen werden. Darum sind auch die Werte der nicht ausgegebenen
Attribute relevant. Hier gilt folgendes:
kind , line und col
müssen immer definierte Werte enthalten. Diese Attribute
werden von toString auch immer ausgegeben.
val wird nur bei number- und
charConst-Token auf einen bestimmten Wert gesetzt. In
allen anderen Fällen hat es den Wert 0 .
string zeigt nur bei Bezeichnern und
Schlüsselwörtern, sowie bei
number-Tokens, auf den entsprechenden String, ansonsten
ist es null (und nicht
"" !).
- ad Aufgabe 2 a):
Die Terminalklasse printableChar wurde im
VO-Skriptum nicht genau definiert, weil sie beliebig
festgelegt werden darf.
Die JUnit-Testfälle gehen allerdings davon aus, dass
nur Zeichen zwischen ASCII 32 (' ' Space) und ASCII 126
('~' Tilde) dazu gehören; alle anderen (z.B. auch
Umlaute und scharfes S) nicht.
- ad Aufgabe 2 b) bzw. Testen allgemein:
Um die korrekte Behandlung von Fehlern durch den Compiler zu
testen, werden einfach die vom Compiler erzeugten
Fehlermeldungen mit den erwarteten verglichen (siehe Aufruf
von TestPrintWriter.verify() z.B. in Testmethode
ScannerTest.testInvalidSymbols() ).
Um in den JUnit-Testfällen keine Failures
zu bekommen, müssten die erzeugten Fehlermeldungen exakt
(= Zeichen für Zeichen) mit den von den Testfällen
erwarteten übereinstimmen.
Da man aber schwer erwarten, dass Sie sich bei der
Implementierung Ihres Compilers genau die gleichen
Fehlermeldungen ausdenken wie wir, gibt es folgende
Richtlinien:
- Alle Fehlermeldung beginnen mit:
-- line X, col Y:
(wobei X die Zeilen- und Y die Spaltennummer
bezeichnen)
- Nach dem Doppelpunkt soll eine sinnvolle
Fehlermeldung folgen. Diese muss aber
nicht mit der in den
Testfällen erwarteten übereinstimmen.
Solche Failures bringen keine
Punkteabzüge.
- ad Aufgabe 2 c):
Abgabe bereits bis Mi, 16.10.2002, 12:00!
|