String-Rechner
Ein einfacher String-Rechner mit TDD Kata
Zweck
Erfahren Sie, wie Sie mit testgetriebener Entwicklung ein Programm erstellen.
Beschreibung
Diese Kata wurde von Roy Osherove erstellt und soll Ihnen beim Erlernen von TDD-Codierung und Refactoring helfen.
Versuchen Sie, nicht vorauszulesen, sondern erledigen Sie eine Aufgabe nach der anderen. Arbeiten Sie schrittweise.
Kata-Schritte
- Erstellen Sie einen String-Rechner mit einer Methode int Add(string zahlen)
- Die Methode kann 0, 1 oder 2 Zahlen annehmen und gibt deren Summe zurück.
- Eine leere Zeichenfolge gibt 0 zurück.
- Beispieleingaben:
“”, “1”, or “1,2”
- Beginnen Sie mit dem einfachsten Testfall einer leeren Zeichenfolge. Dann 1 Zahl. Dann 2 Zahlen.
- Denken Sie daran, die Dinge so einfach wie möglich zu lösen, und zwingen Sie sich dazu, Tests für Dinge zu schreiben, an die Sie nicht gedacht haben.
- Denken Sie daran, nach jedem bestandenen Test eine Umgestaltung vorzunehmen.
- Erlauben Sie der Add-Methode, eine unbekannte Anzahl von Argumenten/Zahlen zu verarbeiten.
- Erlauben Sie der Add-Methode, neue Zeilen zwischen Zahlen (anstelle von Kommas) zu verarbeiten.
- Beispiel:
“1n2,3”
sollte 6 zurückgeben. - Beispiel:
“1,n”
ist ungültig, aber Sie benötigen für diesen Fall keinen Test. - Testen Sie nur korrekte Eingaben – Sie müssen sich für diese Kata nicht mit ungültigen Eingaben befassen.
- Wenn Sie „Add“ mit einer negativen Zahl aufrufen, wird die Ausnahme „Negative nicht zulässig:“ ausgelöst, die alle negativen Zahlen auflistet, die in der Zahlenliste enthalten waren.
- Beispiel
“-1,2”
löst „Negative nicht erlaubt: -1“ aus - Beispiel
“2,-4,3,-5”
wirft „Negative nicht erlaubt: -4,-5“
- Zahlen größer als 1000 sollten ignoriert werden.
- Beispiel:
“1001,2”
gibt 2 zurück
- Erlauben Sie der Add-Methode, ein anderes Trennzeichen zu verarbeiten:
- Um das Trennzeichen zu ändern, enthält der Anfang der Zeichenfolge eine separate Zeile, die wie folgt aussieht:
“//[delimiter]n[numbers]”
- Beispiel:
“//;n1;2”
sollte 3 zurückgeben (das Trennzeichen ist ;) - Diese erste Zeile ist optional; Alle vorhandenen Szenarien (mit , oder n) sollten wie zuvor funktionieren.