Глава 13 · Автоматизация с помощью функций
Тестируем функции
Функцию можно проверить отдельно от всей программы — без пользовательского ввода и без запуска приложения целиком.
Главное практическое преимущество функций
testiruemaya_funkciya.py
def rectangle_area(w, h):
return w * h
proverki.py
rectangle_area(2, 3) == 6
rectangle_area(0, 5) == 0
rectangle_area(10, 1) == 10
Не нужен ни пользовательский ввод, ни всё приложение целиком
Функцию можно проверить в изоляции — вызвать напрямую с конкретными значениями и сравнить с ожидаемым результатом. Это и есть идея тестирования отдельных единиц кода.
Таблица тестов
| Вход | Ожидание | Факт | Пройден? |
|---|---|---|---|
classify_score(95) | «отлично» | «отлично» | |
classify_score(60) | «хорошо» | «хорошо» | |
classify_score(0) | «пересдача» | «пересдача» | |
classify_score(100) | граница сверху | ? | проверить |
Граничные случаи — из главы 9
Тестовая таблица — прямое продолжение граничного тестирования условий из главы 9: проверяем не только «обычные» значения, но и границы диапазонов.
assert — лёгкая проверка предположения
assert_primer.py
assert rectangle_area(2, 3) == 6
assert rectangle_area(0, 5) == 0
print("Все проверки пройдены")
assert_padaet.py
assert rectangle_area(2, 3) == 7
# AssertionError
assert — инструмент разработчика, не проверка пользовательского ввода
assert проверяет предположение и поднимает AssertionError, если оно ложно — это удобно для самопроверки во время разработки и отладки. Это НЕ механизм валидации пользовательского ввода и не защита безопасности — для проверки данных, полученных от пользователя, используются обычные условия (глава 9), как мы уже делали.Рабочий процесс: контракт → примеры → реализация → проверка
Практика: тестируем функцию по таблице
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки