На одиннадцатой неделе курса мы научимся писать надёжный код. Рассмотрим принципы модульного тестирования, оформления документации, автоматической проверки и правильной структуры Python-проекта. Это основа профессиональной разработки, которая делает код удобным для поддержки, масштабирования и повторного использования.
Тестирование позволяет убедиться, что программа работает корректно.
Модульное тестирование — проверка отдельных функций и классов.
Интеграционное тестирование — проверка взаимодействия компонентов.
```python```
def square(x):
return x * x
assert square(3) == 9
assert square(-1) == 1
```python```
import unittest
class TestMath(unittest.TestCase):
def test_square(self):
self.assertEqual(square(3), 9)
if __name__ == "__main__":
unittest.main()
`pytest` — популярный фреймворк для написания компактных тестов:
```python```
def test_square():
assert square(4) == 16
Запуск: `pytest test_module.py`
Докстроки (`docstrings`) — описание функций и классов.
```python```
def greet(name):
"""Функция приветствует пользователя по имени."""
print("Привет,", name)
Хорошая документация включает:
- Назначение функции;
- Аргументы и возвращаемое значение;
- Примеры использования.
PEP8 — стиль кодирования в Python.
Инструменты:
- `flake8` — анализ кода;
- `black` — автоформатирование;
- `isort` — сортировка импортов.
Пример структуры:
```
my_project/
├── main.py
├── utils/
│ └── math_utils.py
├── tests/
│ └── test_math.py
├── README.md
├── requirements.txt
```
1. Напишите тесты для своих функций из прошлых недель.
2. Оформите проект в виде модуля.
3. Настройте запуск тестов через `unittest` или `pytest`.