Декоратор @pytest.mark.parametrize получает имена параметров и наборы их значений. Pytest создаёт отдельный тестовый случай для каждого набора, передавая значения в аргументы функции.
Расскажите синтаксис pytest.mark.parametrize.
Декоратор @pytest.mark.parametrize получает имена параметров и наборы их значений. Pytest создаёт отдельный тестовый случай для каждого набора, передавая значения в аргументы функции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Декоратор @pytest.mark.parametrize получает имена параметров и наборы их значений. Pytest создаёт отдельный тестовый случай для каждого набора, передавая значения в аргументы функции.
import pytest
@pytest.mark.parametrize('a,b,expected', [
(1, 2, 3),
(-1, 1, 0),
])
def test_sum(a, b, expected):
assert a + b == expected
Количество значений в строке должно соответствовать параметрам. Для понятных названий случаев можно задавать ids, а для отдельных настроек использовать pytest.param. Изменяемые значения не копируются автоматически между случаями, поэтому избегайте случайного изменения общих данных.
Источник: docs.pytest.org.