используя TestBed, вы можете предоставить макет для вашего сервиса, например HttpClientServiceMock
, ваш макет может быть объявлен как простой класс, например:
class HttpClientServiceMock {
get(url) {
...
}
}
, а затем использовать TestBed.overrideComponent
для переопределения службы, используемой вашим компонентом.
пример:
TestBed.overrideComponent(AppHttpClientService, {
set: {
providers: [{ provide: HttpClientService, useValue: HttpClientServiceMock}]
}
});
Последний пример предназначен для переопределения службы.Чтобы сделать то же самое для компонента, вы можете попробовать:
TestBed.overrideComponent(ParentComponent, {
set: {
template: '<span>{{data}}</span>'
}})
.createComponent(ParentComponent);
Таким образом, вы будете использовать только ту часть, которую хотите использовать в качестве исходного родительского компонента в тесте.
Итеперь, когда вы создадите экземпляр для вашего дочернего компонента, он будет использовать эту переопределенную версию родительского компонента.