In dieser Übung geht es darum, Jest und JavaScript/TypeScript Unit-Tests kennenzulernen. Es wird daher erstmal ohne UI entwickelt.
Wir wollen eine Methode implementieren, die eine Liste von Customer
Objekte anhand einer Textinput durchsucht und eine
reduzierte Liste der passenden Customers zurückgibt.
Eine Test-Datei und eine leere Klasse liegen bereits als searchCustomer.spec.ts
und searchCustomer.ts
vor.
Für den Anfang sind die Tests bereits geschrieben und nur die zu implementierende Funktion ist noch leer. Anschließend geht es aber mit dem "vollständigen" weiter und es müssen auch eigene Tests geschrieben werden.
- Implementiert
searchCustomer.ts
- aktiviert einen durch das
it.skip
deaktivierten Test (indem ihr das.skip
löscht) - der Test sollten nun fehlschlagen
- implementiert die vom Test erwartete Funktionalität, bis der Test grün ist
- überlegt euch mögliche Verbesserungen an der Implementierung und setzt diese um
- macht mit dem nächsten deaktivierten Test weiter
- aktiviert einen durch das
- Implementiert Unterstützung für mehrere Wörter beim Filtern:
Schreibt zuerst den Test, dann die Implementierung für die folgenden Ergänzungen:
- Angenommen, der Benutzer gibt mehrere Wörter ein.
Dann wird jede
Customer
zurückgegeben, bei der mindestens eines der Wörter gefunden wird. - Die Klein- und Großschreibung wird in der Suche ignoriert:
Angenommen, der Benutzer sucht nach "benjamin".
Dann wird die
Customer
mit Vorname "Benjamin" zurückgegeben. Das gilt für alle von der Suche betroffenen Attribute.
- Angenommen, der Benutzer gibt mehrere Wörter ein.
Dann wird jede
Das Ziel ist, testgetrieben zu entwickeln. Beachtet also die folgenden Punkte:
- Die Akzeptanzkriterien können als Basis für die Testfälle verwendet werden.
- Erst einen Test schreiben, dann die Lösung implementieren
- Zuerst die einfachste Lösung implementieren, dann refactoren.
- Immer alle Tests ausführen, um sich vor Regressionen zu schützen