82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# Programmieren 3
|
|
|
|
## Assignment "TDD Einführung"
|
|
|
|
### Ausgangssituation
|
|
|
|
#### Test Driven Development (TDD)
|
|
|
|
Bei TDD gilt die Regel: Produktivcode darf erst geschrieben werden, wenn
|
|
ein Test vorliegt, der scheitert. Und auch dann soll nur gerade so
|
|
viel Code geschrieben werden, um den Testfall (und alle anderen Tests)
|
|
erfolgreich ausführen zu können.
|
|
|
|
#### Struktur des Assignments
|
|
|
|
Das Assignment besteht aus zwei Java-Klassen:
|
|
|
|
- <code>TriangleChecker</code> enthält den Produktivcode
|
|
- <code>TriangleCheckerTest</code> enthält die Tests
|
|
|
|
Mit Hilfe von TDD soll insbesondere die Methode
|
|
|
|
<code>
|
|
checkTriangle(float a, float b, float c)
|
|
</code>
|
|
|
|
entwickelt werden. Diese Methode hat die Aufgabe, anhand
|
|
der übergebenen drei Seitenlängen zu entscheiden, ob es
|
|
sich um ein normales, ein gleichschenkliges, ein
|
|
gleichseitiges oder gar kein Dreieck handelt.
|
|
|
|
|
|
### Aufgabenstellung
|
|
|
|
#### Normales Dreieck
|
|
|
|
Mit dem Assignment kommt ein erster Testfall,
|
|
der überprüft, ob ein normales Dreieck richtig erkannt
|
|
wird. Sorgen Sie dafür, dass der Testfall nicht mehr scheitert.
|
|
Achten Sie darauf, dass Sie nicht mehr implementieren, als
|
|
zur Lösung dieses Testfalls notwendig ist. Weitere
|
|
Fälle müssen noch nicht erkannt werden.
|
|
|
|
#### Gleichseitiges Dreieck
|
|
|
|
Erstellen Sie nun einen Testfall, der überprüft,
|
|
ob ein gleichseitiges Dreieck erkannt wird.
|
|
Da Sie bisher nur normale Dreiecke identifizieren,
|
|
wird dieser Testfall zunächst scheitern.
|
|
|
|
Nehmen Sie nun minimale Änderungen am Produktivcode vor,
|
|
so dass beide Testfälle fehlerfrei ausgeführt werden.
|
|
|
|
#### Kein Dreieck
|
|
|
|
Es gibt Zahlenkombinationen, die nicht zu einem
|
|
Dreieck passen (z.B. negative Zahlen oder
|
|
eine überlange Seite, so dass die anderen beiden
|
|
Seiten das Dreieck nicht abschließen können).
|
|
|
|
Erstellen Sie jeweils eigene Testfälle für diese
|
|
Art von Zahlenkombinationen. Das sind mindestens
|
|
6 weitere Testfälle (warum?).
|
|
|
|
Korrigieren Sie anschließend den Produktivcode,
|
|
so dass alle Tests durchlaufen.
|
|
|
|
#### Gleichschenkliges Dreieck
|
|
|
|
Schließlich sollen noch gleichschenklige Dreiecke
|
|
erkannt werden. Dabei soll die
|
|
Methode stets die genaueste Information
|
|
zurückliefern, d.h.
|
|
- bei einem gleichseitigen Dreieck *EQUILATERAL*, auch wenn
|
|
ein gleichseitiges Dreieck natürlich auch gleichschenklig
|
|
ist.
|
|
- bei einem gleichschenkligem Dreieck *ISOSCELES*, auch wenn
|
|
ein gleichschenkliges Dreieck natürlich auch ein
|
|
normales Dreieck ist.
|
|
|
|
Verwenden Sie auch hier die TDD-Vorgehensweise.
|