Ожидаемый объект не определен с использованием Jasmine toEqual - PullRequest
2 голосов
/ 08 ноября 2019

Я создал сервис для маскировки данных и написал тест Жасмин для сравнения реальных и ожидаемых объектов. Когда я запускаю тест, я получаю неопределенное значение для объекта actual, возвращаемого службой. Хотя при консольном журнале console.log(JSON.stringify(maskedData)); определяется maskedData.

LOG LOG: '{"handle":"#######@#####.com","displayName":"####ane","iss":"####:###.###.##.#"}'
Expected undefined to equal <jasmine.objectContaining(Object({ handle: '#######@#####.com', displayName: '####ane' }))>.

Вопрос:

Почему объект возврата службы оценивается как неопределенный в тесте, но определенный в журнале консоли?

Я действительно думал, что это может быть асинхронная ошибка, следовательно, неопределенное значение во время теста, но так как запись значения в консоли работает, я так не думаю.

Это суть тестапод вопросом

1014 *

1 Ответ

1 голос
/ 08 ноября 2019

Инструкция expect вызывается до того, как служба вернет результат. Вам нужно синхронизировать асинхронный сервисный вызов. Попробуйте добавить await в строку, где вы вызываете свой сервис.

const maskedData = await service.maskPiiData(mockAddUserAction);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...