Выбор ответа Junior ИИ и тесты спрашивают часто обновлено

Тест-тавтология

Вопрос

Ассистент написал тест:

const expected = calcDiscount(order);
expect(calcDiscount(order)).toBe(expected);

В чём проблема?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ожидание считает сам проверяемый код, тест не падает никогда. Ожидаемое значение вычислено той же функцией, что и проверяется.

Варианты ответа

  1. Нужно toEqual вместо toBe, иначе объекты не сравнятся
  2. Функция вызывается дважды, тест будет работать медленно
  3. Ожидание считает сам проверяемый код, тест не падает никогдаправильный ответ
  4. Нет await, поэтому тест завершится раньше вычисления

Разбор

Ожидаемое значение вычислено той же функцией, что и проверяется. Если в calcDiscount баг, он будет и в ожидании, и тест всё равно зелёный. Ожидание должно быть посчитано вручную или взято из требований. Скорость, toEqual и await тут ни при чём: функция синхронная и возвращает число.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.