Итак, я посмотрел на многие проблемы в Интернете, в том числе этот https://github.com/angular/quickstart/issues/320, и я в замешательстве ...
Как я настроил свой код, так это то, что у меня есть основное описание созданиямой компонент испытательного стенда, здесь у меня есть mockParams, настроенный для активного маршрута, поэтому мы можем this.route.queryparams.subscribe (..), Моя проблема в том, что я не могу перезаписать значения в другом блоке description или 'it'.
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [MyComponent],
imports: [RouterTestingModule
})],
providers: [
{ provide: ActivatedRoute, useValue: mockParams },
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
Вот пример того, как я добавляю переопределение в другой блок описания NESTED ...
beforeEach(() => {
TestBed.overrideProvider(ActivatedRoute,
{useValue: newMockParams});
TestBed.compileComponents();
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
Это похоже на то, что он вообще не запускается ... новыйПараметры mock не меняются, если я повторно использую mockParams и изменяю значения, тогда это изменит значение в исходном описании. Действительно ли мне нужно заново создавать свой компонент в каждом вложенном описании?Это просто не правильно, что я должен был бы сделать это, когда единственное, что мне нужно изменить, это провайдер, я не уверен, что overrideProvider даже делает на этом этапе!Любая помощь будет принята с благодарностью!