Angular · Senior · Запитання 47 з 75
Чому цей тест не підміняє сервіс, який використовує компонент?
@Component({ providers: [EditorState] }) class Editor {}
TestBed.configureTestingModule({ providers: [{ provide: EditorState, useValue: fake }] });- ✓Правильна відповідь: Провайдери рівня компонента мають пріоритет; підмініть їх через
TestBed.overrideComponent - 2
useValueне працює в тестах - 3Провайдери TestBed застосовуються лише до пайпів
Пояснення
Element injector компонента ближчий, ніж інжектор тестового модуля. Виправлення: TestBed.overrideComponent(Editor, { set: { providers: [{ provide: EditorState, useValue: fake }] } }).