Fixture Pytest
Фикстуры в pytest - это механизм, который позволяет нам создавать и поддерживать состояние перед выполнением тестов. Они помогают в создании начальных условий для тестирования и освобождении ресурсов после его завершения. Фикстуры в pytest объявляются как функции с помощью декоратора `@pytest.fixture`.
Примеры кода:
python
import pytest
@pytest.fixture
def setup_data():
data = [1, 2, 3, 4, 5]
return data
def test_sum_of_data(setup_data):
result = sum(setup_data)
assert result == 15
В этом примере мы объявляем фикстуру `setup_data`, которая возвращает список данных. Затем мы передаем эту фикстуру в качестве аргумента в функцию `test_sum_of_data`. Внутри тестовой функции мы используем эту фикстуру для выполнения действий перед тестом. В данном случае мы суммируем значения списка и проверяем, что полученный результат равен ожидаемому.
python
import pytest
@pytest.fixture(params=[1, 2, 3])
def setup_data(request):
data = request.param
return data
def test_multiply_data(setup_data):
result = setup_data*2
assert result == setup_data*2
В этом примере мы определяем фикстуру `setup_data` с параметром. Параметр задается с помощью атрибута `params` декоратора `@pytest.fixture`. Значения параметра перебираются внутри теста, в каждой итерации создается новая фикстура, и значение параметра доступно через аргумент `request.param`. Мы умножаем значение фикстуры на 2 и проверяем, что результат равен удвоенному значению фикстуры.
Фикстуры в pytest предоставляют гибкий и мощный инструмент для создания и поддержки состояния перед выполнением тестов. Они помогают упростить и структурировать код тестов, а также повышают его читаемость и поддерживаемость.