В pytest существует несколько способов обработки нескольких случаев или сценариев тестирования. Вот несколько методов, которые вы можете использовать:
- Параметризованные тесты. Параметризованные тесты позволяют запускать одну и ту же логику тестирования с разными входными значениями. Вы можете определить тестовую функцию и указать несколько наборов параметров с помощью декоратора
@pytest.mark.parameterize
. При этом для каждого набора параметров будут созданы отдельные тестовые примеры.
Пример:
import pytest
@pytest.mark.parametrize("input_data, expected_output", [
(1, 2),
(3, 6),
(5, 10)
])
def test_multiply_by_two(input_data, expected_output):
result = input_data * 2
assert result == expected_output
- Тестовые приспособления. Тестовые приспособления позволяют настроить тестовую среду или предоставить необходимые данные для тестовых случаев. Вы можете определить фикстуры с помощью декоратора
@pytest.fixture
и использовать их в качестве аргументов в своих тестовых функциях. Определив несколько приборов, вы можете работать с разными сценариями.
Пример:
import pytest
@pytest.fixture
def setup_data():
# Set up test data or environment
data = [1, 2, 3, 4]
return data
def test_data_length(setup_data):
assert len(setup_data) == 4
def test_data_sum(setup_data):
assert sum(setup_data) == 10
- Классы тестов. Вы можете организовать связанные тестовые случаи в классы. Каждый тестовый пример определяется как отдельный метод внутри класса. Это позволяет группировать тесты и использовать общую логику настройки или демонтажа с помощью приспособлений на уровне класса.
Пример:
import pytest
class TestMathOperations:
def test_addition(self):
assert 2 + 2 == 4
def test_subtraction(self):
assert 5 - 3 == 2
Используя эти методы, вы можете эффективно обрабатывать несколько случаев в pytest.