TDD Kata 02: String Calculator

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Letzte Woche: The Bowling Game

Siehe letzter Post: TDD Kata 01: The Bowling Game

Meine persönlichen Ziele diese Woche:

  • Die Kata in Ruby ausprobieren
  • Sie auch in PHP durchführen, mit Knapsack Collections

Ich habe in meiner Komfortzone angefangen, PHP mit PHPUnit. Ich habe die Abschnitte (first test, second test, …) wie beschrieben befolgt. Ich habe Knapsack Collections benutzt, so dass mein Test Data Provider am Ende so aussah:

    public static function dataGame()
    {
        return [
            'gutter game' => [0, repeat(0, 20)],
            'all ones' => [20, repeat(1, 20)],
            'one spare' => [16, values([5, 5, 3])->concat(repeat(0, 17))],
            'one strike' => [24, values([10, 3, 4])->concat(repeat(0, 16))],
        ];
    }

In der Implementierung habe ich zunächst auch versucht, mich auf Collection-Funktionen zu beschränken, aber an einem gewissen Punkt wurde es unpraktisch weil Punkte von vorherigen Würfen abhängig sind. Das Bowling Game ist offenbar kein idealer Anwendungsfall für Collection Pipelines.

Dann habe ich die Kata in Ruby durchgeführt, was ich erst seit einer Weile lerne. In der Implementierung habe ich die für Java empfohlenen Schritten relativ nah befolgt.

Aber eins habe ich gelernt: Auf der Suche nach Möglichkeiten für farbige Test-Ausgabe habe ich -r minitest/pride entdeckt, und ich liebe es!

fabulous minitest

Zweite Kata: String Calculator

Die Kata ist hier beschrieben: String Calculator. Anforderungen werden Schritt für Schritt erweitert, und man ist angehalten, eine nach der anderen zu implementieren ohne voraus zu denken. Dies ist eine gute Übung, nur genau so viel zu tun, wie notwendig ist, um die Tests passieren zu lassen.

Meine persönlichen Ziele diese Woche

  • Die Kata wieder in PHP und Ruby durchführen
  • Mich auf jeweils 15 Minuten bechränken, ob fertig oder nicht