Встречается на собеседованиях • сегодня

Как использовать unit тест с параметрами в pytest

В pytest параметризованные тесты можно создать с помощью декоратора @pytest.mark.parametrize. Он позволяет передавать разные наборы данных в один тест, избегая дублирования кода.

Пример:

python
import pytest

@pytest.mark.parametrize("input, expected", [
    (2, 4),
    (3, 9),
    (5, 25)
])
def test_square(input, expected):
    assert input ** 2 == expected

Ключевые моменты:

  1. Первый аргумент декоратора - строка с именами параметров через запятую
  2. Второй аргумент - список кортежей с тестовыми данными
  3. Можно использовать несколько декораторов для комбинаторики параметров
  4. Для сложных случаев можно передавать параметры через фикстуры

Для удобства можно выносить параметры в отдельную переменную:

python
test_data = [(1, 1), (2, 4), (3, 9)]
@pytest.mark.parametrize("x,expected", test_data)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы