У меня есть функция для модульного тестирования, к которой я не знаю, как подойти. Упрощенно:
someFunction(): boolean {
this.service.login().subscribe(response => {
if (response) {
return someOtherFunction();
}
});
}
someOtherFunction(): boolean {
this.service.otherTask().subscribe(response => {
if (response) {
return true;
}
});
}
Я хочу проверить результат someFunction
в этом случае. Однако это не работает:
describe('someFunction', () => {
it('returns true', () => {
serviceSpy.login.and.returnValue(of({response: response}));
serviceSpy.otherTask.and.returnValue(of({response: otherResponse}));
result = component.someFunction();
expect(result).toEqual(true);
});
});
ServiceSpy был настроен до этого блока. Я вижу, что функции выполняются и возвращается истина. Однако на данный момент я прошу result
, но он все еще не определен. Фреймворк тестирования не ждет, пока все будет завершено. Я пытался использовать asyn c, fakeAsyn c, done (), но это не помогло. Есть ли способ проверить возвращаемое значение someFunction
?