Невозможно переопределить поставщика в 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 и многое другое. Но мой вопрос остается, я не уверен, что это ошибка, или я просто туплю. Я просто хотел спросить кого-нибудь с большим опытом здесь, прежде чем я продолжу и открою вопрос в репо.

0 ответов

Другие вопросы по тегам