Ланцюжкові запити фікстур

Вступ до тестування в Python

Alexander Levin

Data Scientist

Що таке ланцюжковий запит

  • Ланцюжкові запити фікстур — це можливість pytest, що дозволяє одній фікстурі використовувати іншу
  • Створює композицію фікстур

фікстура викликає іншу фікстуру

Вступ до тестування в Python

Навіщо і коли використовувати

Ланцюжкові запити фікстур допомагають:

  • Встановлювати залежності між фікстурами
  • Зберігати код модульним

Коли це корисно:

  • Коли кілька фікстур залежать одна від одної
Вступ до тестування в Python

Приклад ланцюжкових запитів

# Fixture that is requested by the other fixture
@pytest.fixture
def setup_data():
    return "I am a fixture!"
# Fixture that is requested by the test function
@pytest.fixture
def process_data(setup_data):
    return setup_data.upper()
# The test function
def test_process_data(process_data):
    assert process_data == "I AM A FIXTURE!"
Вступ до тестування в Python

Як використовувати ланцюжкові запити

  1. Підготуйте програму для тестування
  2. Підготуйте тестові функції
  3. Підготуйте фікстури pytest
  4. Передайте ім'я фікстури в сигнатуру іншої фікстури
# Фікстура, що запитує іншу фікстуру
@pytest.fixture
def process_data(setup_data):
    return setup_data.upper()
Вступ до тестування в Python

Підсумок

  • Ланцюжкові запити фікстур — це функція, що дозволяє фікстурі використовувати іншу (створюючи композиції фікстур)
  • Допомагає ділити код за функціями та тримати його модульним
  • Приклад застосування: кроки конвеєра обробки даних
  • Щоб використати ланцюжкові запити, передайте ім'я фікстури в сигнатуру іншої фікстури
Вступ до тестування в Python

Давайте потренуємось!

Вступ до тестування в Python

Preparing Video For Download...