Введение в фикстуры

Введение в тестирование на Python

Alexander Levin

Data Scientist

Что такое фикстура

  • Фикстура — подготовленная среда для выполнения теста
  • Настройка фикстуры — процесс подготовки среды и ресурсов, необходимых для одного или нескольких тестов

Представьте подготовку к пикнику:

  1. Пригласить друзей и приготовить еду (это и делают фикстуры)
  2. Отдохнуть!
  3. Убрать за собой
Введение в тестирование на Python

Зачем нужны фикстуры

Фикстуры помогают:

  • Упростить подготовку тестов
  • Изолировать настройку среды от самих тестов
  • Повторно использовать код фикстур
Введение в тестирование на Python

Пример фикстуры: обзор

Допустим, у нас есть:

  • переменная типа list с именем data
  • data = [0, 1, 1, 2, 3, 5, 8, 13, 21]

И мы хотим проверить, что:

  • список содержит 9 элементов
  • список содержит элементы 5 и 21
Введение в тестирование на Python

Пример фикстуры: код

import pytest

# Fixture decorator
@pytest.fixture
# Fixture for data initialization
def data():
    return [0, 1, 1, 2, 3, 5, 8, 13, 21]

def test_list(data):
    assert len(data) == 9
    assert 5 in data
    assert 21 in data
Введение в тестирование на Python

Пример фикстуры: вывод

Вывод примера: вывод примера фикстуры

Введение в тестирование на Python

Как использовать фикстуры

Чтобы использовать фикстуру, выполните следующее:

  1. Подготовьте программное обеспечение и тесты
  2. Найдите «подготовку среды»
  3. Создайте фикстуру:
    • Объявите декоратор @pytest.fixture
    • Реализуйте функцию фикстуры
  4. Используйте созданную фикстуру:
    • Передайте имя фикстуры в функцию теста
    • Запустите тесты!
Введение в тестирование на Python

Итоги

Мы изучили фикстуры для тестирования:

  • Фикстура — подготовленная среда для выполнения теста
  • Фикстуры упрощают настройку тестов и изолируют её от тестовых функций
  • Простой пример: подготовка list в Python
  • Фикстура pytest объявляется с помощью @pytest.fixture
    • за которым следует функция фикстуры
  • Имена фикстур используются в тестах как переменные
Введение в тестирование на Python

Давайте потренируемся!

Введение в тестирование на Python

Preparing Video For Download...