← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 9: Написання перших тестів

Технологія: Python

Номер лабораторної: 9 · Рівень: middle

Тема: Юніт тести з pytest

Повний опис / сценарій лабораторної:

Meta: навчитися писати тести які покривають основні гілки логіки.



Krok 1. Встановити pytest у віртуальному середовищі.

Komandi: cd ~/python_lab1; source .venv/bin/activate; pip install pytest



Krok 2. Створити модуль з логікою для тестування.

Komanda: cd src; printf "def divide(a: float, b: float) -> float:
    if b == 0:
        raise ValueError("division by zero")
    return a / b
" > app/math9.py



Krok 3. Створити каталог tests і файл test_math9.py.

Komandi: mkdir -p tests; touch tests/test_math9.py



Krok 4. Написати позитивний тест.

Komanda: printf "from app.math9 import divide

def test_divide_ok():
    assert divide(6, 3) == 2
" > tests/test_math9.py



Krok 5. Додати тест на помилку.

Komanda: printf "from app.math9 import divide
import pytest

def test_divide_ok():
    assert divide(6, 3) == 2

def test_divide_zero():
    with pytest.raises(ValueError):
        divide(1, 0)
" > tests/test_math9.py



Krok 6. Запустити pytest у каталозі src.

Komanda: pytest -q



Krok 7. Змінити реалізацію divide щоб зламати один тест.

Poyasnennya: наприклад повернути завжди одиницю.



Krok 8. Повторно запустити pytest і побачити падіння.

Komanda: pytest -q



Krok 9. Повернути правильну реалізацію і зафіксувати урок що тести захищають від регресій.



Krok 10. Mini zvit.

Zavdannya: опиши як організувати структуру tests для великого застосунку.