Параметризация тестов

Если несколько тестов проверяют одну и ту же функцию передавая туда разные аргументы это выглядит довольно громоздко:

Тест1 Проверим что Сложение(0, 0) возвращает 0 Тест2 Проверим что Сложение(-1, 1) возвращает 0 … Тест9 Проверим что Функция(7, 8) возвращает 15

Вместо запуска одного и того же теста с разными входными данными удобнее сделать один тест, который будет принимать несколько наборов аргументов.

Это обычно и понимают под параметризацией.

Выглядит это примерно так:

ПараметризированныйТест ((0, 0, 0), (-1, 1, 0)… , (7, 8, 15)

Чтобы избежать противоречий отметим следующий момент:

Параметризованный тест не склеивает тесты в один большой тест. Если было девять тестов их останется девять, проходить успешно или падать они будут независимо друг от друга.

Помимо лаконичности кода у параметризации есть ряд преимуществ.

Этот способ потом легче масштабировать. Также при наличии тяжёлых для вычисления шагов, их повтор плохо скажется на производительности.

Например, гораздо эффективнее обратиться к базе данных в начале теста а в конце закрыть соединение, чем открывать и закрывать соединение для каждого набора данных.

Автор статьи: Андрей Олегович