Невозможно переопределить провайдера в angular 9 - PullRequest
0 голосов
/ 16 апреля 2020

При попытке переопределить провайдера в тестовом примере, используя 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 впереди и открыть вопрос в репо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...