-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Das Testumfeld funktioniert, indem die originale Terminal.java mit der Terminal.java des Testumfelds ersetzt wird. Da Unsere Programme lediglich Termnal.printLine(String line) und Terminal.readLine() nutzen, wird in der Test Terminal.java einfach eine virtuelle Texteingabe simuliert.
Man muss also die Terminal.java ersetzen damit das Programm automatisch vom Tester gesteuert werden kann.
Ja bitte, je mehr testfiles es gibt desto mehr Fälle werden abgedeckt. Fragen im Ilias Thread stellen.
ECLIPSE:
(1) Downloade die Datei Terminal.java und integriere sie statt der originalen Terminal.java in Dein Langton Projekt in das passende Paket: edu.kit.informatik
(2) Downloade die Dateien FailCase.java, SuccessCase.java, TestCase.java, TestFileParser.java und Tester.java
(3) Erstelle in Deinem Langton Projekt ein neues Paket namens edu.kit.informatik.test und integriere die Dateien aus Schritt drei
(4) Lade die bereits erstellten test files herunter: fundamental.txt, testCase.txt
(5) Vergewissere Dich, dass in der Datei Tester.java in Zeile 54 statt "Main" Dein Klassenname steht, welcher die public static void main(String[] args) Methode enthält.
(6) Starte Tester.java mit dem Pfad zu einem test file, der Test müsste jetzt automatisch starten und durchgeführt werden.
(1) Öffne einen beliebigen Texteditor
(2) Lade die Datei testCase.txt herunter und öffne sie.
(3) Die Kommentare und Beispiele müssten ausreichen um ein Testfile zu schreiben
// all files have to begin with the test board initialization
board=
{000000000000000000
00000A000000000000
000000000000000000
000000000000000000}
// after that you determine the starting conditions meaning, the cmdline arguments that will
// be passed to your main program some examples:
// start=<NONE>,<NONE>
// start=<NONE>,speedup=3 // THIS IS NOT PERMITTED!
// start=speedup=3,<NONE> // this is ok
// start="speedup=3","rule=45-45-45-45-45"
// start="rule=45-45-45-45-45"
// start="rule=315-315-315-315-315","speedup=2"
start=<NONE>,<NONE>
// here the print command and the expected output. board outputs are always in enclosing brackets
input="print"
output=
{
000000000000000000
00000a000000000000
000000000000000000
000000000000000000}
// if there is no expected output for the given input write output=<NONE>
input="move 1"output=<NONE>
input="print"output={
00000a000000000000
000000000000000000
000000000000000000
000000000000000000}
// this is also permitted
input="move 2"
output=<NONE>
input="print"
output={
000033000000000000
0000a0000000000000
000000000000000000
000000000000000000}
input="move 1"
output=<NONE>
input="print"
output={
000033000000000000
00003a000000000000
000000000000000000
000000000000000000
}
// this is an example for a simple direction command
input="direction a"
output="N"
// another example
input="field 1,2
output="0"
//if you want to check for an error just write what you expect an error would be
// and give the cause so you know why the error should have been there
input="move 2 "
output=<ERROR,cause="no whitespace after the move command is allowed">`