Angular · Senior · Frage 47 von 75

Warum ersetzt dieser Test den von der Komponente genutzten Service nicht?

@Component({ providers: [EditorState] }) class Editor {}
TestBed.configureTestingModule({ providers: [{ provide: EditorState, useValue: fake }] });
Antwort zeigen

Richtige Antwort: Provider auf Komponentenebene gewinnen; TestBed.overrideComponent nutzen

Erklärung

Der Element-Injector der Komponente liegt näher als der Injector des Testmoduls. TestBed.overrideComponent(Editor, { set: { providers: [{ provide: EditorState, useValue: fake }] } }) behebt das.

Zum Weiterlesen

Fehler in der Frage

Angular · Senior · Frage 47

Teste dich selbst

Mach den Test Angular · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen