1.13 Testfälle
syntax
(check-expect expr expr)
Dieser Testfall überprüft, ob der erste expr den gleichen
Wert hat wie der zweite expr, wobei das zweite expr
meist ein Literal ist.
syntax
(check-within expr expr expr)
Wie check-expect, aber mit einem weiteren Ausdruck,
der als Wert eine Zahl delta hat. Der Testfall überprüft, dass jede Zahl im Resultat
des ersten expr maximal um delta
von der entsprechenden Zahl im zweiten expr abweicht.
syntax
(check-member-of expr expr ...)
Ähnlich wie check-expect: Der Testfall überprüft, dass das Resultat
des ersten Operanden gleich dem Wert eines der folgenden Operanden ist.
syntax
(check-satisfied expr pred)
Ähnlich wie check-expect: Der Testfall überprüft, ob der Wert
des Ausdrucks expr vom Prädikat pred erfüllt wird -
das bedeutet, dass die Funktion pred den Wert #t
liefert, wenn sie auf den Wert von expr angewendet wird.
Der folgende Test wird also bestanden:
(check-satisfied 1 odd?)
Der folgende Test hingegen wird hingegen nicht bestanden:
(check-satisfied 1 even?)
syntax
(check-range expr expr expr)
Ähnlich wie check-expect: Alle drei Operanden müssen
Zahlen sein. Der Testfall überprüft, ob die erste Zahl zwischen der
zweiten und der dritten liegt (inklusive).
syntax
(check-error expr expr)
Dieser Testfall überprüft, ob der erste expr einen Fehler produziert,
wobei die Fehlermeldung der Zeichenkette entspricht, die der Wert des zweiten
expr ist.
syntax
(check-property expr)
Dieser Testfall überprüft experimentell, ob die Eigenschaft
expr erfüllt ist. Dazu werden zufällige Werte für die mit
for-all quantifizierten Variablen eingesetzt: Damit wird
überprüft, ob die Bedingung gilt.
Wichtig: check-property funktioniert nur für Eigenschaften, bei denen aus den Signaturen sinnvoll Werte generiert werden können. Dies ist für viele Signaturen der Fall, aber nicht für solche mit Signaturvariablen.