Die Diamond-Kata nimmt als Eingabe einen Buchstaben und gibt ihn in Form einer Raute aus. Zu einem Buchstaben gibt sie eine Raute aus, die mit 'A' beginnt und den übergebenen Buchstaben an der breitesten Stelle hat.
In den folgenden Beispielen werden Leerzeichen durch ·-Zeichen dargestellt.
Raute für den Buchstaben 'A':
A
Raute für den Buchstaben 'C':
··A··
·B·B·
C···C
·B·B·
··A··
Raute für den Buchstaben 'E':
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Die Tests in dieser Übung unterscheiden sich von den Tests, die du sonst kennst. Normalerweise prüft ein Test, ob die Ausgabe für eine gegebene Eingabe dem erwarteten Wert entspricht. Das nennt man wertbasiertes Testen. Diese Übung verwendet jedoch eigenschaftsbasiertes Testen, bei dem die Tests prüfen, ob die Ausgabe für eine Reihe von Eingaben eine bestimmte Eigenschaft hat. Die zwei wichtigsten Unterschiede zwischen eigenschaftsbasiertem und wertbasiertem Testen sind:
In dieser Übung überprüfen alle Tests eine Eigenschaft der Rautenform, die dein Code erzeugen soll. Außerdem prüfen alle Tests, ob die Eigenschaft, die sie testen, für alle gültigen Eingabebuchstaben ('A' bis 'Z') gilt.
Um eigenschaftsbasiertes Testen zu ermöglichen, verwenden die Tests in dieser Übung die Pakete FsCheck und FsCheck.Xunit. Mehr über FsCheck erfährst du in der Dokumentation zum Framework.
Wenn du mehr über eigenschaftsbasiertes Testen erfahren möchtest, schau dir diesen Artikel an.
Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.