В примере spe c тест ниже
beforeEach(function () {
TestBed.configureTestingModule({
providers: [
{ provide: TranslateService, useClass: TranslateServiceMock },
{ provide: StoreService, useClass: StoreServiceMock },
{
provide: GLOBAL_CONFIG_TOKEN,
useValue: { default: true }
}
],
});
let config = TestBed.inject(GLOBAL_CONFIG_TOKEN);
});
it('should override provider otherwise what is the point? :)', () => {
let config = TestBed.overrideProvider(GLOBAL_CONFIG_TOKEN, { useValue: { default: false, random: 'damn' } });
expect(config).toEqual({default: false, random: 'damn'});
});
дело в том, что тест не удался, потому что по умолчанию всегда true и random не является свойством config. Это означает, что конфигурация все еще имеет значение по умолчанию во время настройки модуля тестирования, и поставщик не был переопределен.
Есть идеи, почему? Является ли метод overrideProvider просто помощником, который обновляет объект moduleRef , изначально переданный в configureTestingModule?