Pytest: viết test cho code Python

Code không có test giống như đi trên dây không lưới. Pytest là framework kiểm thử phổ biến và dễ dùng nhất của Python, giúp bạn tự tin rằng code chạy đúng.

Vì sao cần viết test?

  • Phát hiện lỗi sớm, trước khi lên production.
  • Tự tin sửa/mở rộng code mà không sợ làm hỏng cái cũ.
  • Test cũng là tài liệu mô tả cách code hoạt động.

Cài đặt

pip install pytest

Viết test đầu tiên

# tinh_toan.py
def cong(a, b):
    return a + b

# test_tinh_toan.py
from tinh_toan import cong

def test_cong():
    assert cong(2, 3) == 5
    assert cong(-1, 1) == 0

Chạy test

pytest              # chạy mọi file test_*.py
pytest -v           # chi tiết
pytest test_x.py    # chạy một file

Kiểm tra ngoại lệ

import pytest
def test_chia_cho_khong():
    with pytest.raises(ZeroDivisionError):
        1 / 0

Fixture — chuẩn bị dữ liệu dùng chung

@pytest.fixture
def du_lieu_mau():
    return [1, 2, 3]

def test_tong(du_lieu_mau):
    assert sum(du_lieu_mau) == 6

Thói quen tốt

Viết test cho những phần logic quan trọng nhất trước. Mỗi khi sửa lỗi, hãy thêm một test để lỗi đó không quay lại. Dần dần, bộ test trở thành tấm lưới an toàn cho cả dự án.

Lên đầu trang