У меня есть угловой сервис, где один метод прослушивает изменения состояния и возвращает наблюдаемое, но другие методы этого же сервиса выполняют логику преобразования:
ngOnInit() {
this.isLoading = true;
this.myService.stateListener().subscribe((res: any) => {
this.data = this.myService.transformModel(res);
this.isLoading = false;
this.cd.detectChanges();
}, (err) => {
this.errMessage = 'Data could not be loaded';
this.isLoading = false;
});
}
В тестах я высмеиваю слушателя состояния, чтобы он возвращал определенные тестируемые данные, например, так:
const mockService = jasmine.createSpyObj('myService', ['stateListener']);
mockService.stateListener.and.returnValue(of({
number: 107,
mock: someMock
}));
Проблема в том, что, поскольку я смоделировал службу, метод «transformerModel» больше не существует (в смоделированной службе), поэтому данные, связанные с компонентом, «неопределены».
Есть ли способ смоделировать только возвращаемую наблюдаемую (stateListener) без насмешки метода преобразования того же сервиса?