Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unit Testing và Test-Driven Development (TDD)

    Unit TestingTest-Driven Development (TDD) – những khái niệm cốt lõi trong CI/CD pipelines. Nhưng làm thế nào để triển khai thực tế trong Python?
    🧪 Unit Testing với Python
    • Unit Test = kiểm thử từng thành phần nhỏ (function, method) của code.
    • Trong Python, hai framework phổ biến nhất là:
      • unittest (có sẵn trong standard library).
      • pytest (mạnh mẽ, cú pháp gọn, cộng đồng lớn).

    Mục tiêu: Xác nhận mỗi unit hoạt động đúng trước khi ghép chúng lại thành hệ thống lớn.
    🚀 Test-Driven Development (TDD)


    Quy trình TDD thường theo vòng lặp Red → Green → Refactor:
    1. Viết test trước (ban đầu sẽ fail, vì chưa có code).
    2. Viết code tối thiểu để pass test.
    3. Refactor code để gọn gàng, tránh trùng lặp, nhưng vẫn pass test.

    👉 Ví dụ minh họa:
    # test_math.py import pytest from math_utils import add def test_add_numbers(): assert add(2, 3) == 5
    Ban đầu chưa có hàm add(), test chắc chắn fail.
    Tiếp theo, ta viết code:
    # math_utils.py def add(a, b): return a + b
    Chạy lại test → pass ✅
    Vòng lặp tiếp tục cho các function khác.
    ⚙️ CI/CD & Unit Test
    • CI tools (Jenkins, GitLab CI, GitHub Actions, v.v.) sẽ chạy unit test tự động.
    • Dựa vào exit code:
      • 0 → Pass
      • !=0 → Fail

    Khi toàn bộ test pass → code được merge → build artifact → triển khai sang staging/UAT.
    📌 Nội dung kiểm tra nhanh


    Câu hỏi: Which option is not a benefit of using CI?
    • merge difficulties
    • ability to move faster
    • fewer defects
    • improved reliability

    👉 Đáp án: merge difficulties (CI giúp giảm khó khăn khi merge, chứ không tạo thêm).
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X