Angular · Senior · Pytanie 47 z 75
Dlaczego ten test nie podmienia serwisu używanego przez komponent?
@Component({ providers: [EditorState] }) class Editor {}
TestBed.configureTestingModule({ providers: [{ provide: EditorState, useValue: fake }] });- ✓Poprawna odpowiedź: Providery na poziomie komponentu mają pierwszeństwo; podmień je przez
TestBed.overrideComponent - 2
useValuenie działa w testach - 3Providery TestBed dotyczą tylko pipe'ów
Wyjaśnienie
Element injector komponentu jest bliżej niż injector modułu testowego. Rozwiązanie: TestBed.overrideComponent(Editor, { set: { providers: [{ provide: EditorState, useValue: fake }] } }).