Вот типичный вариант использования. Мы хотим протестировать эту функцию removeItem
.
// items.js
items = [/* .... */];
function removeItem(id) {
// remove item with given id from `items`
}
Я хочу написать что-то вроде:
// test.js
expect(() => removeItem(7)).toChange(() => items.length);
Как мне написать это с помощью jest
?
Другой пример того, что могло бы быть, в ruby у нас есть хороший API для этого:
# test.rb
expect { removeItem(7) }.to(change { items.length }.from(1).to(0))
РЕДАКТИРОВАТЬ: Я, конечно, знаю о следующем подходе, и я специально ищу что-то с меньшим дублированием.
// test.js
expect(items).toHaveLength(1);
removeItem(7);
expect(items).toHaveLength(0);