چرا تست خودکار مینویسیم؟
تست خودکار به ما اطمینان میدهد که تغییرات جدید در کد، رفتار قبلی برنامه را خراب نمیکند. pytest یکی از محبوبترین ابزارهای تست در پایتون است که با نحو ساده و پیامهای خطای خوانا شناخته میشود.
ابتدا کتابخانه را نصب میکنیم:
pip install pytestفرض کنید تابعی به این شکل داریم:
# calculator.py
def add(a, b):
return a + b
def divide(a, b):
if b == 0:
raise ValueError("تقسیم بر صفر مجاز نیست")
return a / bفایل تست معمولاً با پیشوند test_ نامگذاری میشود و هر تابع تست نیز باید با test_ شروع شود تا pytest آن را شناسایی کند:
# test_calculator.py
import pytest
from calculator import add, divide
def test_add():
assert add(2, 3) == 5
def test_divide_by_zero():
with pytest.raises(ValueError):
divide(10, 0)برای اجرای تستها کافی است دستور pytest را در ریشهی پروژه اجرا کنید. برخلاف unittest که نیاز به کلاس و متدهای خاص دارد، در pytest کافی است از دستور سادهی assert استفاده کنید و کتابخانه بهطور خودکار پیام خطای دقیقی در صورت شکست تست تولید میکند.