Zum Inhalt springen

Prüfen

prüfe-Blöcke sind das Herzstück der Nachvollziehbarkeit: benannte Beispielrechnungen, die ein Modul bit-genau gegen einen Referenz-Interpreter verifizieren — und zugleich als ausführbare Tests dienen.

Ein prüfe-Block bündelt unter einer Bezeichnung mehrere testfall-Einträge. Jeder testfall trägt ein Beschreibungs-Label und einen Block, dessen letzter Ausdruck eine boolesche Aussage ist:

prüfe "§ 32a Abs. 1 EStG — Grundtarif über alle Zonen" {
testfall "Zone 1 · Grundfreibetrag" { EstGrundtarif(12.348) == 0 }
testfall "Zone 2 · Eingangsprogression" {
var zve: Euro = 15.000
EstGrundtarif(zve) == 435
}
testfall "Zone 4 · 42 %" { EstGrundtarif(100.000) == 30.864 }
}

Der Block folgt dem Arrange-Act-Assert-Muster: optionale var-Zwischenwerte zum Aufbau, dann genau eine boolesche Assertion als Schlusszeile. Wertet sie zu falsch aus, scheitert der Testfall (der Bericht zeigt das Label).

Per Konvention liegen prüfe-Blöcke in einer Testdatei ….test.findsl neben dem Modul; die zu prüfenden Deklarationen werden importiert:

verwende { EstGrundtarif, EstSplitting } aus "./est"
prüfe "§ 32a EStG — Knotenpunkte der Tarifzonen" {
testfall "Existenzminimum" { EstGrundtarif(12.096) == 0 }
}

Mit erwartet abbruch wird positiv getestet, dass eine unzulässige Eingabe korrekt abgewiesen wird:

testfall "negatives zvE wird abgelehnt" erwartet abbruch {
EstGrundtarif(-100 als Euro)
}

Der Testfall besteht genau dann, wenn die Auswertung ein abbruch auslöst.

  • Bestanden → grün (im Editor neben dem Block und in den generierten Tests).
  • Abweichung → rot, mit Soll-/Ist-Vergleich und Label.

Im Editor erscheint neben jedem prüfe-Block ein Play-Pfeil; ausgeführt wird über den Referenz-Interpreter. Auf der Kommandozeile wertet das findsl test-Kommando die Blöcke aus.