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).
Tests gehören in eine eigene Datei
Abschnitt betitelt „Tests gehören in eine eigene Datei“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 }}Den Ablehnungspfad prüfen
Abschnitt betitelt „Den Ablehnungspfad prüfen“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.
Ergebnisse
Abschnitt betitelt „Ergebnisse“- 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.