Я хочу проверить функцию в компоненте, который вызывает асинхронную функцию.Я хочу проверить, вызывается ли функция после другой.
Я пытался до того, как ждать, а потом (в обещаниях), но это не сработало.Код функции моего компонента выглядит следующим образом:
public async onModalExecute() {
const center = this.service.graph.getCenter();
this.service.graph.fitPage();
this.service.graph.screenshot().then(() => {
this.service.graph.setCenter(center);
});
}
В моем файле spec.ts у меня есть следующий код:
const setCenterSpy = spyOn(service.graph, 'setCenter');
const getCenterSpy = spyOn(service.graph, 'getCenter').and.returnValue({ x: 0, y: 0 });
component.onModalExecute();
expect(getCenterSpy).toHaveBeenCalledBefore(setCenterSpy);
Ожидается, что он будет работать нормально, но я получаю Ожидаемый шпионsetCenter был вызван.Это работает только когда я использую setTimeOut.Какое здесь правильное решение?Является ли setTimeOut единственным решением?