🧪 Automation Testing · Chương 3 · Mục 3.2
Vì sao dùng pytest
Ở Chương 1-2, muốn biết code đúng hay sai, bạn phải tự nhìn output rồi so sánh bằng mắt:
def chao_hoi(ten):"""Tra ve loi chao co ten nguoi dung."""return f"Xin chao, {ten}!"ket_qua = chao_hoi("Lan")print(ket_qua)
Chạy ra Xin chao, Lan! — bạn tự đọc, tự đối chiếu xem đúng chưa. Với vài dòng thì ổn, nhưng hàng trăm bài kiểm tra thì không ai rảnh ngồi đọc từng dòng để so sánh bằng mắt.
pytest giải quyết bằng assert — viết thẳng điều kiện đúng phải là gì, không cần print() rồi tự nhìn:
def chao_hoi(ten):"""Tra ve loi chao co ten nguoi dung."""return f"Xin chao, {ten}!"def test_chao_hoi():assert chao_hoi("Lan") == "Xin chao, Lan!" # kiem tra ham tra dung chuoi mong doi
Chạy pytest, kết quả tự động:
KẾT QUẢ
PASSED
Nếu code sai (ví dụ hàm trả nhầm nội dung), pytest tự báo FAILED kèm lý do rõ ràng — không cần tự dò tìm chỗ sai.
Ngoài ra pytest còn tự tìm mọi file test_*.py và hàm test_* để chạy, không cần tự gọi từng hàm, và chạy được hàng trăm test cùng lúc.