Я пытаюсь смоделировать вызов функции, используя spyOn и callFake, но реальная функция все еще вызывается вместо поддельной функции.
код компонента:
async getOrderProfile() {
let ordersSuccess = false;
...
try {
const ordersResponse = await this.ordersService.getOrderProfile(params);
ordersSuccess = this.validateResponse(ordersResponse);
...
} catch (error) {
...
}
}
spec:
describe('OrdersComponent', () => {
let component: OrdersComponent;
let fixture: ComponentFixture<OrdersComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [OrdersComponent],
imports: [],
providers: []
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(OrdersComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should call getOrdersNoteData', () => {
...
spyOn(component, 'validateResponse').and.callFake(() => {
console.log('faked method');
return true;
});
component.getOrderProfile();
...
});
});
Я не вижу, что мой тестовый оператор записан на консоль, и настоящая функция выдает ошибку, потому что она не имеет всех ожидаемых данных. Я не уверен, что я делаю не так в этом.
Я также использовал spyOn returnValue без удачи:
spyOn(component, 'validateResponse').and.returnValue(true)