Skip to content

Commit d02e0c9

Browse files
committed
errata1a: Resource und Injection Context
1 parent 571134c commit d02e0c9

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

material/errata-1a/README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ ng g service book-store
6161

6262
In Abschnitt 22.3 beschreiben wir, wie HTTP-Requests mit `httpResource()` getestet werden können.
6363
Im darunter liegenden Unterabschnitt "Resource mocken" erläutern wir: Um ein Resource-Objekt im Test zu erzeugen, müssen wir `useFactory` einsetzen, denn die Resource benötigt einen Injection Context.
64-
Tatsächlich funktioniert das inzwischen aber auch mit `useValue`, sodass wir nicht zwingend zu `useFactory` wechseln müssen.
64+
Das Beispiel funktioniert allerdings auch mit `useValue`, sodass wir nicht zwingend zu `useFactory` wechseln müssen.
65+
Der Grund: Die Resource wird in der Methode `getAll()` erzeugt, die von der Komponente in einem Injection Context aufgerufen wird.
6566

6667
Die abgedruckte Variante mit `useFactory` ist dennoch nicht falsch und kann weiterhin so genutzt werden – nur die Erklärung ist nicht korrekt.
6768

@@ -95,6 +96,22 @@ Die abgedruckte Variante mit `useFactory` ist dennoch nicht falsch und kann weit
9596
// ...
9697
```
9798

99+
Wenn die Resource hingegen im Test direkt erzeugt wird (ohne Funktion), ist `useFactory` notwendig, um einen Injection Context herzustellen:
100+
101+
```ts
102+
// Hier ist `usefactory` notwendig:
103+
// Die Resource wird direkt im Test erzeugt.
104+
// ...
105+
{
106+
provide: BookStore,
107+
useFactory: () => ({
108+
booksResource: resource({
109+
loader: () => Promise.resolve(mockBooks),
110+
})
111+
})
112+
}
113+
// ...
114+
```
98115

99116

100117
## 25.5.8 Logik für Schema-Funktionen

0 commit comments

Comments
 (0)