Параметризованные тесты javascript с использованием Jest
Вы когда-нибудь писали разные тестовые примеры для проверки одной и той же функциональности, чтобы варьировать только переменные, которые вы используете в своем тесте?
Параметризованные тесты используются для повторного запуска одного и того же тестового примера, но при разных условиях при каждом запуске. Это упрощает поддержку теста и позволяет избежать дублирования.
Но как мне использовать его с Jest?
Глобальные переменные Jest поставляются с именованным методом each, который позволяет повторно выполнять тест, каждый раз используя разные данные.
Этот метод можно использовать, передав таблицу, которая будет передана в вашу тестовую функцию и использована внутри тела вашего теста.
Предположим, у вас есть функция добавления, и вам нужно протестировать ее с разными значениями, чтобы вы могли передать в таблицу списки значений, которые будут использоваться, и ожидаемый результат при использовании этих значений.
test.each([
[[1, 2], 3],
[[50, 51], 101],
[[10, 25], 35],
])('adds %i and expects %i', (numbers, result) => {
const [firstNumber, secondNumber] = numbers
expect(add(firstNumber, secondNumber)).toEqual(result)
})
test.each([
{first: 1, second: 2, result: 3},
{first: 50, second: 51, result: 101},
{first: 10, second: 25, result: 35},
])('adds $first and $second and expects $result', ({ first, second, result }) => {
expect(add(firstNumber, secondNumber)).toEqual(result)
})
Вы также можете использовать все другие методы шутки с вашим параметризованным тестом, например test.only.eachили test.skip.each.
И последнее замечание: если вы используете версию Jest старше 23.x, вам необходимо установить пакет npm с именем jest-each , который позволяет вам написать тестовый пример в основном так же, как мы делали с более новой версией Jest. .

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































