Выбор ответа Junior Jest и Vitest спрашивают часто обновлено
toBe для объектов
Вопрос
Почему падает expect({ a: 1 }).toBe({ a: 1 })?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: toBe сравнивает ссылки, а это два разных объекта. toBe проверяет идентичность: для объектов это одна и та же ссылка.
Варианты ответа
toBeсравнивает ссылки, а это два разных объектаправильный ответ- Объекты надо сравнивать через
==, аtoBeэто=== toBeсравнивает объекты по строке JSON, а ключи разные- Это баг Jest, в Vitest такой тест проходит
Разбор
toBe проверяет идентичность: для объектов это одна и та же ссылка. Для сравнения содержимого нужен toEqual или toStrictEqual. Нестрогое равенство для объектов тоже сравнивает ссылки, так что оно не поможет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.