При попытке переопределить провайдера в тестовом примере, используя Testbed.overrideProvider
, он на самом деле ничего не переопределяет.
Раньше он работал нормально angular 9 с жасмином, не уверен, что изменилось в angular 9, который сломал это.
Любая помощь будет оценена. в моем приложении html компонент, который я удаляю .bg-image
, когда layout $ содержит 'mobile'.
Вот что у меня есть:
app.component.spe c .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();
Я использовал для переопределенияProvider, как это с angular 6 и некоторое время не использовал angular. Сегодня я начал работать над новым проектом с angular 9, и даже при том, что у него есть те же самые методы, насмешка с overrideProvider
больше не работает. Я знаю, что на самом деле многое изменилось с angular 6, например, стандартная среда тестирования изменилась с jasmine на jest, новый рендер ivy и многое другое Но мой вопрос остается, я не уверен, если это ошибка, или я просто тупой. Я просто хотел спросить кого-то с большим опытом здесь, прежде чем я go впереди и открыть вопрос в репо.