Was ist Dependency Injection in Angular, und wozu gibt es das?
Du deklarierst im Constructor einer Klasse, was sie braucht, und Angular liefert es, statt dass die Klasse ihre Abhängigkeiten selbst konstruiert. Das existiert, damit dieselbe Komponente in der App einen echten Service und im Test einen Fake bekommen kann, ohne dass sich ihr Code ändert. providedIn: 'root' macht einen Service zum Singleton für die ganze App.