Как проверить функцию с асинхронным вызовом в угловых - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу проверить функцию в компоненте, который вызывает асинхронную функцию.Я хочу проверить, вызывается ли функция после другой.

Я пытался до того, как ждать, а потом (в обещаниях), но это не сработало.Код функции моего компонента выглядит следующим образом:

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 единственным решением?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...