Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Nhiều bạn mới học lập trình thấy test là thứ "dành cho người đi làm" và bỏ qua. Nhưng một unit test đơn giản có thể cứu bạn khỏi hàng giờ debug về sau. Bài này hướng dẫn viết unit test đầu tiên với mô hình AAA dễ nhớ, kèm ví dụ bằng JavaScript (Jest) và Python (pytest).
Unit test là đoạn code nhỏ kiểm tra một đơn vị nhỏ (thường là một hàm) hoạt động đúng. Bạn đưa vào đầu vào cụ thể, chạy hàm, rồi so sánh kết quả với kết quả mong đợi. Test chạy tự động, nhanh, và có thể lặp lại bao nhiêu lần tùy ý.
Lợi ích chính:
Mỗi test nên chia làm ba phần rõ ràng:
Cách chia này giúp test dễ đọc, và nếu thấy phần Arrange quá dài, đó là gợi ý code của bạn đang quá phụ thuộc vào nhiều thứ.
Hàm cần test, đặt trong file cart.js:
function calculateTotal(items) {return items.reduce((sum, item) => sum + item.price * item.qty, 0);}module.exports = { calculateTotal };File test cart.test.js:
const { calculateTotal } = require('./cart');describe('calculateTotal', () => {test('tính đúng tổng tiền nhiều sản phẩm', () => {// Arrangeconst items = [{ price: 10000, qty: 2 },{ price: 5000, qty: 3 },];// Actconst total = calculateTotal(items);// Assertexpect(total).toBe(35000);});test('giỏ hàng rỗng trả về 0', () => {expect(calculateTotal([])).toBe(0);});});Cài Jest bằng npm install --save-dev jest, thêm "test": "jest" vào phần scripts của package.json, rồi chạy npm test.
# cart.pydef calculate_total(items):return sum(i["price"] * i["qty"] for i in items)# test_cart.pyfrom cart import calculate_totaldef test_calculate_total_nhieu_san_pham():# Arrangeitems = [{"price": 10000, "qty": 2}, {"price": 5000, "qty": 3}]# Acttotal = calculate_total(items)# Assertassert total == 35000def test_gio_hang_rong():assert calculate_total([]) == 0Cài pytest bằng pip install pytest rồi chạy lệnh pytest trong thư mục dự án.
Với mỗi hàm, hãy nghĩ đến ba nhóm trường hợp:
Bắt đầu thật nhỏ: chọn một hàm thuần trong dự án của bạn, viết ba test cho nó theo mô hình AAA và chạy. Cảm giác thấy dòng chữ màu xanh "passed" sẽ cho bạn động lực để biến việc viết test thành thói quen.
Muốn học kiểm thử cùng các dự án thực hành có hướng dẫn, bạn có thể xem qua các khóa học trên codebem.com.
Nguyễn Đình Cường
0 comment