Mmaiqai.com
🤖 API Testing · Chương 7 · Mục 7.1

Tầng 1: Unit & contract test trước khi commit

🎯 Mục tiêu học: hiểu tầng đầu tiên trong mô hình 3 tầng test thực tế — chạy cục bộ, cực nhanh, trước cả khi code được đẩy lên hệ thống chung.

🔗 Liên hệ với các chương trước: Chương 7 không phải 1 nhóm kịch bản test mới — đây là cách tổ chức và tự động hoá toàn bộ những gì đã học ở Chương 1-6 (checklist theo method, integration, bảo mật OWASP, hiệu năng, contract) thành 1 quy trình chạy được lặp lại, thay vì làm thủ công từng lần.

Đặc điểm Tầng 1

Chạy ngay trên máy dev, thường qua pre-commit hook — tự động chạy trước khi lệnh git commit hoàn tất. Ở tầng này chỉ nên có: unit test cho logic xử lý (validate, tính toán), và chạy lại contract test đã có (Chương 6) — KHÔNG chạy integration test đầy đủ vì cần môi trường/service phụ thuộc chưa chắc có sẵn trên máy dev.

# Ví dụ pre-commit hook đơn giản (.git/hooks/pre-commit hoặc qua tool
# như pre-commit/husky)
#!/bin/sh
pytest tests/unit/ -q          # unit test logic, chạy trong vài giây
pytest tests/contract/ -q      # xác nhận vẫn khớp hợp đồng đã có (Chương 6)
# KHÔNG chạy tests/integration/ ở đây — quá chậm cho vòng lặp mỗi lần commit

Vì sao tầng này quan trọng

Phản hồi tức thì — dev biết ngay lỗi trong vài giây, thay vì chờ pipeline CI/CD chạy xong (có thể mất nhiều phút).

Chặn lỗi rẻ nhất có thể — sửa lỗi ngay lúc code còn "nóng" trong đầu dev luôn rẻ hơn nhiều so với phát hiện ở Tầng 2 hay Tầng 3.

📌 Ghi nhớ

Nguyên tắc chọn test cho Tầng 1: nếu 1 test case cần môi trường phức tạp, gọi service ngoài, hoặc chạy quá vài giây — nó không thuộc Tầng 1, hãy đẩy xuống Tầng 2 (Mục 7.2).

📖 Thuật ngữ Anh–Việt (mục này)

Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.

Thuật ngữ (EN)Nghĩa & ghi nhớ nhanh
Pre-commit hookScript tự động chạy trước khi hoàn tất lệnh commit trong Git
Unit testKiểm thử đơn vị — test 1 phần nhỏ logic độc lập, không phụ thuộc hệ thống ngoài
Fast feedback loopVòng phản hồi nhanh — phát hiện lỗi càng sớm càng tốt trong quá trình phát triển

📎 Nội dung do maiqai.com biên soạn dựa trên mô hình 3 tầng test phổ biến trong thực hành CI/CD, không sao chép nguyên văn từ nguồn nào.