Two Fer

Two Fer

Einfach

Einführung

In manchen englischen Akzenten klingt „two for“ wie „two fer“, wenn du es schnell sagst. „Two-for-one“ ist eine Art zu sagen, dass du eins gratis dazubekommst, wenn du eins kaufst. Die Wendung „two-fer“ deutet also oft auf ein Two-for-one-Angebot hin.

Stell dir eine Bäckerei vor, die ein Feiertagsangebot hat: Du kannst zwei Kekse zum Preis von einem kaufen („two-fer one!“). Du nimmst das Angebot an und beschließt (sehr großzügig), den zusätzlichen Keks jemand anderem in der Schlange zu geben.

Anleitung

Deine Aufgabe ist es, zu entscheiden, was du sagst, wenn du den zusätzlichen Keks verschenkst.

Wenn du den Namen der Person kennst (z. B. wenn sie Do-yun heißt), sagst du:

One for Do-yun, one for me.

Wenn du den Namen der Person nicht kennst, sagst du stattdessen you.

One for you, one for me.

Hier sind ein paar Beispiele:

Name Dialog
Alice One for Alice, one for me.
Bohdan One for Bohdan, one for me.
One for you, one for me.
Zaphod One for Zaphod, one for me.

Implementierung

Bevor du loslegst, stelle sicher, dass du weißt, wie du Code schreibst, der die Testfälle besteht. Mehr Hintergrund findest du in diesem Tutorial.

Die meisten Java-Übungen enthalten mehrere Testfälle. Diese Fälle sind so aufgebaut, dass sie einen nützlichen Prozess unterstützen, der als testgetriebene Entwicklung (TDD) bekannt ist. TDD bedeutet, einen strukturierten Zyklus zu wiederholen, der Programmierenden hilft, komplexe Funktionalität Stück für Stück aufzubauen statt auf einmal. Dieser Zyklus lässt sich wie folgt beschreiben:

  1. Füge einen Test hinzu, der einen Teil der gewünschten Funktionalität beschreibt, der in deinem Code gerade noch fehlt.
  2. Führe die Tests aus, um zu prüfen, dass dieser neu hinzugefügte Test fehlschlägt.
  3. Aktualisiere deinen vorhandenen Code, bis:
    • alle alten Tests weiterhin bestehen;
    • auch der neue Test besteht.
  4. Räum deinen Code auf und stelle dabei sicher, dass alle Tests weiterhin bestehen. Dazu gehört typischerweise das Umbenennen von Variablen, das Entfernen doppelter Logikblöcke, das Entfernen übrig gebliebener Logging-Ausgaben usw.
  5. Kehre zu Schritt 1 zurück, bis die gesamte gewünschte Funktionalität aufgebaut ist!

Die Testdateien in diesem Track enthalten alle Tests, die deine Lösung bestehen muss, um als gültig zu gelten. Das scheint zunächst nicht mit dem oben beschriebenen Zyklus vereinbar zu sein, in dem Tests einzeln geschrieben werden. Das Tool, mit dem wir unsere Tests schreiben, JUnit, bietet jedoch eine @Disabled-Annotation, mit der du einen bereits geschriebenen Test vorübergehend überspringen kannst. Mit dieser Annotation stellen wir sicher, dass die Testdateien, die wir dir liefern, die folgenden Regeln erfüllen:

  • Der erste Test in einer Testdatei wird standardmäßig nicht übersprungen.
  • Alle Tests außer dem ersten in einer Testdatei werden standardmäßig übersprungen.

So kannst du den TDD-Zyklus simulieren, indem du diese leicht abgewandelten Schritte befolgst:

  1. Führe die Tests aus, um zu prüfen, dass derzeit höchstens ein Test fehlschlägt.
  2. Aktualisiere deinen vorhandenen Code, bis alle nicht übersprungenen Tests bestehen.
  3. Räume deinen Code auf und stelle sicher, dass alle nicht übersprungenen Tests weiterhin bestehen.
  4. Entferne die oberste @Disabled-Annotation in der Testdatei.
  5. Kehre zu Schritt 1 zurück, bis keine Tests mehr übersprungen werden und alle Tests bestehen!

Quelle

Sieh dir die Quelle dieser Übung an.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Java Exercism

Bereit, mit Two Fer zu starten?

Melde dich bei Exercism an, um Java mit 26 Konzepte158 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.