Наличие предсказуемого процесса разработки позволяет избежать ситуации, когда реализация какой-то функциональной возможности или исправление ошибки приводят к непредвиденному поведению. Уменьшение количества сюрпризов, возникающих в ходе разработки, облегчает оценку стоящих перед вами задач и позволяет не так часто переписывать код.
Существует разница между строгими (strict) и глубокими (deep) проверками равенства. Глубокое равенство означает, что два разных объекта имеют одинаковые значения. Строгое равенство — это когда две ссылки указывают на один и тот же объект. В Jest глубокая проверка равенства выполняется с помощью toEqual, а строгая — с помощью toBe.
Сначала тест подготавливает сценарий, добавляя творожный десерт в корзину. Затем вызывает функцию, которую вы хотите протестировать (в данном случае removeFromCart). В конце проверяет, лежит ли в корзине то, что вы ожидали. Здесь используется тот же шаблон: подготовка, выполнение и проверка. Эта последовательность также известна как шаблон проектирования AAA: arrange, act, assert («подготовка, выполнение, утверждение»).
Модуль expect подобен модулю assert из состава Node.js, но при этом создан специально для Jest и помогает сделать обратную связь системы еще полезнее.
Различные типы тестов и когда их следует примен