Модульное тестирование с pytest

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

Alexander Levin

Data Scientist

Что такое модульный тест

Модуль — наименьший компонент программы, который можно протестировать.

  • Примеры модулей: функции, методы, классы, пакеты и т. д.

$$

Модульное тестирование — метод тестирования программного обеспечения.

  • Позволяет проверить корректность работы отдельного модуля.

$$

Тестовый случай — набор входных данных и ожидаемых результатов для модуля.

  • Описывает конкретный аспект решаемой задачи.
Введение в тестирование на Python

Зачем нужны модульные тесты

Модульные тесты — основа для проверки «общей картины» работы программы.

Когда применять:

  • При обнаружении ошибок
  • В процессе разработки
  • После внесения изменений
Введение в тестирование на Python

Как создать модульный тест

Пошаговый процесс:

  1. Определите, какие модули тестировать
  2. Сформулируйте тестовые случаи (творческий этап):
    • «Каковы возможные результаты работы модуля?»
    • «Как можно использовать этот модуль?»
    • «Как он должен вести себя в каждом из случаев?»
  3. Напишите код для каждого тестового случая
  4. Запустите тесты и проанализируйте результаты
Введение в тестирование на Python

Создание модульного теста: пример

Тестируемый модуль:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

Тестовые случаи:

  1. Входные данные — список чисел (ожидаемый случай): должен вернуть sum
  2. Входные данные — пустой список: должен вернуть 0
  3. Входные данные — список из одного number: должен вернуть это number
Введение в тестирование на Python

Создание модульного теста: код

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Введение в тестирование на Python

Итоги

Модульный тест — проверяет, что модуль работает корректно.

Тестовый случай — входные и выходные данные, описывающие конкретный аспект задачи.

Когда применять:

  • При обнаружении ошибок
  • В процессе разработки
  • После внесения изменений

Формулировка тестовых случаев — требует творческого подхода.

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

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

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

Preparing Video For Download...