-
Notifications
You must be signed in to change notification settings - Fork 0
Bootcamp
- Fundierte Kenntnisse der relevanten Konzepte und Begriffe in Angular
- Umstieg von JS auf TS
- Umsetzung eines Taskboards
- Testing mit Angular
- Kennenlernen von RESTful APIs
Bitte stelle sicher, dass die Bootcamp-API installiert ist und jederzeit gestartet werden kann.
Erzeuge für den Chat eine neue Angular-Anwendung mit de CLI.
# Erzeugt ein Angular Projekt
# - Element-Prefixes = tb
# - Preprocessor = scss
ng new taskboard --prefix tb --style scss
Hinweis Du kannst im Angular Cheat Sheet einige wichtige Commands nachschlagen, die du im Zuge dieser Aufgabe verwenden musst.
Oft fällt ist es zu Beginn nicht immer einfach den Zeitpunkt zu bestimmen, wann ein Commit im Repository erzeugt wird. Eine Faustregel besagt, dass nach jedem Feature ein solcher Commit erfolgt. Ein Feature ist beispielsweise:
- Task kan visualisiert werden
- Tasks werden in einer Liste angezeigt
- Ein Task kann von Liste
ToDo
in ListeDoing
verschoben werden.
Versuche in dieser Übung ein Gespür für den Commit von Änderungen zu bekommen. 🎓
Übrigens Du solltest mindestens einmal pro Tag pushen, um deine Arbeit zu sichern. 📑
1. Updated zunächst eure Linting Styles nach folgender Anleitung
2. Haltet euch an die Frontend Guidelines
und Git Commit Styles
: https://github.com/ui-bootcamp/guidelines-and-conventions
Taskboard |
---|
Wenn das Taskboard geöffnet wird, kann ein einzelner Task angelegt werden |
Wenn ein Task angelegt wurde, wird er in einer Liste mit dem Titel ToDo angezeigt. |
Wenn sich ein Task in der ToDo befindet, kann dieser mit einem Klick gelöscht werden. |
- Zum Laden, Anlegen und Löschen von Tasks kann ein In-Memory
Service
eingesetzt werden - Die Funktionalität des Taskboards wird in einem eigenen Modul implementiert.
- Komponenten kommunizieren durch
@Input
- und@Output
-Bindings miteinander.
Taskboard |
---|
Wenn ein Task angelegt wurde, wird er gespeichert. |
Wenn das Taskboard nach dem Schließen des Browser erneut geöffnet wird, wird der angelegte Task nachwievor angezeigt. |
Wenn ein Task angelegt wurde, soll dieser nur in der Liste ToDo angezeigt werden. |
Wenn ein Task in Bearbeitung ist, soll dieser nur in der Liste Doing angezeigt werden. |
Wenn ein Task abgeschlossen ist, soll dieser nur in der Liste Done angezeigt werden. |
Ein Task wird immer nur in einer Liste angezeigt. |
- Zum Laden, Anlegen und Löschen von Tasks wird die Bootcamp-API genutzt.
- Die API wird durch einen Angular Service angesprochen, der den HttpClient nutzt.
- Der zuvor geschriebene In-Memory Service und der Http Service haben die gleiche API.
- Http- und In-Memory-Service sollen sich im IoC-Container einfach austauschen lassen.
-
REST
: Representational State Transfer -
CRUD
: CREATE, READ, UPDATE, DELETE -
SOP
: Same Origin Policy -
CORS
: Cross Origin Resource Sharing
Heute wirst du Unit- und Integrationstests schreiben. Nutze zur Formulierung der Tests die Akzeptanzkriterien aus den Vortagen. Mit den Tests wirst du die implementierte Fachlichkeit nachweisen.
Die folgende Liste zeigt, welche Techniken bei den Tests zum Einsatz kommen.
-
Component Unit Test
- @Input
- @Output (jasmine spy)
-
Component Shallow Test
-
Service Unit Test
-
Service Integration Test mit MockBackend
-
Dokumentation: Angular's Test Guide
-
Beispiele: GitHub Repository
- Die Tests befinden sich in den jeweiligen spec-Dateien (siehe
*.spec.ts
).
- Die Tests befinden sich in den jeweiligen spec-Dateien (siehe
Duplikate erkennen |
---|
Wenn ein Nutzer den Text eines neuen Tasks eingibt, werden in Echtzeit alle besehenden Tasks optisch hervorgehoben, die den gleichen Text haben. |
Wenn die Erkennung von Duplikaten ausgelöst wird, sollen Groß- /Kleinschreibung nicht berücksichtigt werden. |
Wenn die Erkennung von Duplikaten ausgelöst wird, reicht eine Teilübereinstimmnug des Textes, um den jeweiligen Task optisch hervorzuheben. |
Favoriten |
---|
Wenn ein Task in der Liste ToDo oder Doing steht, kann dieser als Favorit gekennzeichnet werden. |
Wenn ein Task als Favorit gekennzeichnet ist, wird dieser optisch hervorgehoben. |
Wenn ein Tasks als Favorit gekennzeichnet ist, kann mit einem Klick der Favoritenstatus entzogen werden. |
Task bearbeiten |
---|
Wenn ein auf einem Task angeklickt wird, kann der Text des Tasks bearbeitet werden. |
Wenn ein Task bearbeitet wird, kann der neue Text gespeichert werden. |
Wenn ein Task bearbeitet wird, und dessen neuer Text gespeichert wird, wird der Editiermodus automatisch beendet. |
- Schreibe für wenigstens vier Akzeptanzkriterien deiner Wahl Unit-Tests.
- Bonus Schreibe für ein Akzeptanzkriterium einen UI-Test.
Links zu weiterführenden Infos bzw zur Wiederholung:
- Angular Test Bed
- Egghead: Intro to Angular 2 Forms
- Was ist
Angular
und wo hilft es uns? - Was ist
Angular CLI
- Welche Arbeit nimmt uns
Angular CLI
ab? - Was ist eine
Component
? - Was ist eine
Directive
? - Welche Arten von
Directives
gibt es? - Was sind
Lifecycle Hooks
? - Was ist
NgModule
? - Was ist
Bootstrap
im NgModule? - Was ist eine
Pipe
? - Was macht die
async
Pipe? - Was ist ein
Service
? - Was ist
Dependency Injection
? - Was ist ein
Local Singleton
? - Wofür brauche ich das
providers Array
? - Was ist der
Router
? - Was sind
Router Guards
? - Was ist ein
@Input
? - Was ist ein
@Output
? - Was ist
Event bzw. Property Binding
? - Was ist der Unterschied zwischen
propertyName="..."
und[propertyName]="..."
? - Welche Arten von
Tests
gibt es in Angular? - Was ist
HTTP
? - Was ist
SOP
? - Was ist
CORS
? - Was ist
REST
? - Was ist
Reactive Programming
? - Was ist ein
Observer
? - Was ist ein
Observable
? - Was ist ein
Subject
? - Was ist
AOT
? - Was ist
JIT
? - Was sind
Decorators
?