Можно ли рекурсивно пройти через объект с помощью шутки? - PullRequest
0 голосов
/ 19 июня 2020

expect(res.body.result.verificationToken).toBeDefined()

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

Я хочу сначала проверить, есть ли свойства уже есть.

Я знаю, я могу получить это lodash (_.get). Но я хочу знать, возможно ли это с помощью шутки без использования других библиотек.

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

Ожидаемое значение, которое вам нужно: .toHaveProperty():

expect(res).toHaveProperty('body.result.verificationToken');

В качестве альтернативы вы можете передать имена свойств в виде массива:

expect(res).toHaveProperty(['body', 'result', 'verificationToken']);

Второй формат более интуитивно понятен, когда в пути задействованы массивы, но также можно использовать первый формат, используя числа (индексы) в качестве свойств.

0 голосов
/ 19 июня 2020
• 1000 неправильная проблема. Желательно, чтобы ожидания от тестов были как можно точнее. Если неизвестно, что ответ был успешным, есть проблемы с условиями тестирования.

Вместо этого это может быть:

// in a test where failed response is expected
expect(res.body.result).not.toBeDefined()

// in a test where success response is expected
expect(res.body.result.verificationToken).toBeDefined()
...