Zum Inhalt springen

Aufgabe 21 - Testfälle für den Warenkorb

Zu Zen-Modus wechseln

Sie sichern Ihren Shop aus Aufgabe 12 mit systematischen Testfällen ab und erleben dabei, wie Tests einen Umbau ungefährlich machen (siehe Kapitel Testen).

In dieser Übung üben Sie:

  • Strukturieren: Tests nach Arrange - Act - Assert aufbauen.
  • Abdecken: Normalfälle, Randfälle und Fehlerfälle unterscheiden.
  • Absichern: einen Umbau mit grünen Tests durchführen.
  • Ihre Lösung von Aufgabe 12 (Shop),
  • eine Testhilfe: function check(name, tatsaechlich, erwartet): gibt OK <name> oder FEHLER <name>: erwartet ..., war ... aus.

Erstellen Sie vor dem Schreiben der Tests eine Tabelle mit mindestens zehn Testfällen für Warenkorb, darunter:

  • Gesamtsumme bei leerem Korb,
  • Hinzufügen: neue Position vs. gleiches Produkt nochmals (Stückzahl erhöhen? Entscheiden und festhalten!),
  • Entfernen einer nicht vorhandenen Position,
  • Bestellen mit ausreichendem Lager (Lagerstand danach!),
  • Bestellen mit zu wenig Lager (nichts darf sich ändern!),
  • ein Randfall, den nur Sie sich ausgedacht haben.
  1. Setzen Sie jeden Testfall als Block um: Arrange (Objekte frisch anlegen!), Act (eine Aktion), Assert (check).
  2. Jeder Test muss unabhängig laufen, kein Test verwendet Objekte eines anderen. Warum ist das wichtig? Kommentar!
  3. Führen Sie alle Tests aus: alles OK? Falls ein Test einen echten Fehler in Ihrem Shop findet: dokumentieren, fixen, erneut laufen lassen.
  1. Neue Anforderung: Ab 100 € Bestellwert gibt es 5 % Rabatt auf die Gesamtsumme.
  2. Schreiben Sie zuerst zwei neue Testfälle (99,99 € und 100 €!), dann die Implementierung.
  3. Alle alten Tests müssen weiter OK melden. Notieren Sie, ob Ihnen die Tests beim Umbau geholfen haben. Eine ehrliche Antwort ist erwünscht.

shop.js (ggf. korrigiert), shop.test.js mit allen Tests und die Testplan-Tabelle.