Невозможно переопределить поставщика в angular 9
При попытке переопределить поставщика в тестовом примере, используя, Testbed.overrideProvider
на самом деле это ничего не отменяет.
Раньше он отлично работал angular 9 с жасмином, не уверен, что изменилось в angular 9, которое его сломало.
Любая помощь будет принята. в моем html-компоненте приложения я удаляю.bg-image
когда layout$ содержит "мобильный".
Вот что у меня есть:
app.component.spec.ts
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
],
providers: [
{
provide: BreakpointService,
useValue: {
layout$: of('web')
}
}
],
declarations: [AppComponent]
}).compileComponents();
и в моем одном из тестовых случаев it() я делаю
TestBed.overrideProvider(BreakpointService, {
useValue: { layout$: of('mobile') }
});
fixture.detectChanges();
const imageElem = fixture.debugElement.query(By.css('.bg-image'));
expect(imageElem).toBeFalsy();
Раньше я переопределял такой провайдер с помощью angular 6 и какое-то время не использовал angular. Сегодня я начал работать над новым проектом с angular 9, и даже несмотря на то, что в нем есть те же методы насмешки сoverrideProvider
больше не работает. Я знаю, что с angular 6 действительно многое изменилось, например, тестовая среда по умолчанию изменилась с jasmine на jest, а также на новый рендер ivy и многое другое. Но мой вопрос остается, я не уверен, что это ошибка, или я просто туплю. Я просто хотел спросить кого-нибудь с большим опытом здесь, прежде чем я продолжу и открою вопрос в репо.