IT nói tiếng người
Kiểm thửMốc 2 · Tự viết được cái đầu tiên

✅ Assertion là gì?

Câu lệnh phán xử đúng hay sai.

1
Hiểu nó là gì

Assertion là chỗ test so sánh kết quả thực tế với kết quả mong đợi: khớp thì test pass, lệch thì test fail.

Nói theo đời thường:
Như người chấm thi đối chiếu bài làm với đáp án: giống thì cho điểm, khác thì gạch.

⚠ Chỗ ẩn dụ này hỏng

Người chấm thi biết linh động: viết “Hà Nội” hay “hà nội” đều cho đúng. Assertion thì so từng ký tự.

Thừa một dấu cách, khác hoa thường, ngày ghi 01/09 thay vì 1/9 — đều fail. Và ngược lại, assertion lỏng quá (chỉ cần “có chữ Hà”) thì test xanh cả khi sản phẩm sai. Chọn độ chặt của assertion là cả một nghề.

2
Code trông thế nào
// Quá chặt — đổi một dấu cách là đỏ
await expect(el).toHaveText('Chào Na,  bạn có 3 đơn')

// Vừa đủ — kiểm tra đúng thứ mình quan tâm
await expect(el).toContainText('3 đơn')

Kiểm tra đúng thứ bạn quan tâm, đừng kiểm tra cả những thứ tình cờ nằm cạnh.

3
Khi nào bạn dùng nó

✓ Dùng khi

  • Mọi ca test — không có assertion thì không phải test
  • Cần chốt “thế nào là đạt” thành thứ máy hiểu được

✗ Đừng dùng khi

  • Chưa biết kết quả đúng là gì (đi hỏi cho ra trước đã)
  • Kiểm tra cả những thứ không liên quan tới ca test này
Chưa cần biết: soft assertion, snapshot testing, matcher tự viết.
Để dành tới Mốc 3 — Tự sửa được khi nó hỏng: Test đỏ trên CI mà xanh ở máy bạn, và bạn biết bắt đầu tìm từ đâu.
Dấu hiệu bạn đã cần học nó: Khi test đỏ ở dòng đầu và bạn muốn nó chạy tiếp để xem còn sai chỗ nào nữa.
4
Đi đâu tiếp

🧪 Thử 2 phút, không cần cài gì

F12 → Console:
console.assert(1 + 1 === 3, 'sai rồi')
Đó là assertion trần trụi nhất: đúng thì im lặng, sai thì kêu lên.
← Xem tất cả thuật ngữ