Выбор ответа Middle Jest и Vitest обновлено
Тест без await
Вопрос
Тест всегда зелёный, хотя API возвращает ошибку. В чём дело?
it('загружает профиль', async () => {
expect(api.getProfile(1)).resolves.toMatchObject({ id: 1 });
});
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Нет await: тест завершился раньше, чем промис отклонился. Без await (или return) раннер не ждёт промис, тест завершается успешно, а отклонение проверки случится уже после него, в лучшем случае с предупреждением. resolves есть в обоих раннерах, toBe тут ни при чём, имя теста не влияет.
Варианты ответа
resolvesне поддерживается в Vitest, проверка молча пропускается- Для промисов нужен
toBe, аtoThrowпроверяет синхронный код - Нет
await: тест завершился раньше, чем промис отклонилсяправильный ответ - Имя теста должно начинаться с test_, иначе проверки не учитываются
Разбор
Без await (или return) раннер не ждёт промис, тест завершается успешно, а отклонение проверки случится уже после него, в лучшем случае с предупреждением. resolves есть в обоих раннерах, toBe тут ни при чём, имя теста не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.