IT nói tiếng người
Kiểm thửMốc 1 · Nói chuyện được

🥒 Gherkin là gì?

Cú pháp Given When Then để viết kịch bản test.

1
Hiểu nó là gì

Gherkin dùng các từ khoá Given, When, Then để viết tình huống theo lối kể chuyện, rồi công cụ như Cucumber nối từng dòng đó với code chạy thật.

Nói theo đời thường:
Như công thức nấu ăn chia mục rõ ràng: có sẵn gì, làm gì, ra kết quả gì. Đọc là hình dung được ngay.

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

Công thức nấu ăn thì đọc là làm được. Gherkin thì mỗi dòng phải có một đoạn code đứng sau nó, và đoạn code đó ai đó phải viết.

Viết Gherkin mất 2 phút, viết step definition cho nó mất 2 giờ. Đó là chi phí ẩn khiến nhiều đội bỏ giữa chừng. Và nếu mỗi kịch bản dùng một cách diễn đạt khác nhau, số bước cần code sẽ phình không kiểm soát.

2
Code trông thế nào
# Kịch bản
Khi tôi đăng nhập bằng mật khẩu sai

// Đoạn code đứng sau nó — phần tốn công
When('tôi đăng nhập bằng mật khẩu sai', async () => {
  await page.getByLabel('Mật khẩu').fill('sai')
  await page.getByRole('button', { name:'Đăng nhập' }).click()
})

Mẹo sống còn: dùng lại y nguyên câu chữ giữa các kịch bản để tái dùng được bước.

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

✓ Dùng khi

  • Đã chọn làm BDD và có người nghiệp vụ tham gia
  • Cần tài liệu mà đọc xong chạy được luôn

✗ Đừng dùng khi

  • Chỉ đội kỹ thuật dùng với nhau
  • Chưa đủ người để nuôi lớp step definition
Chưa cần biết: Scenario Outline, bảng dữ liệu, hook, gắn thẻ kịch bản.
Để dành tới Mốc 2 — Tự viết được cái đầu tiên: Bạn viết được một test mở trang, bấm nút, kiểm tra chữ hiện ra — và nó chạy xanh trên máy bạn.
Dấu hiệu bạn đã cần học nó: Khi bạn có 8 kịch bản giống hệt nhau chỉ khác mỗi con số.
4
Đi đâu tiếp

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

Viết lại ca test “đăng nhập sai mật khẩu” của bạn thành đúng 3 dòng Cho trước / Khi / Thì. Đếm xem có bao nhiêu từ mà máy sẽ phải hiểu — đó là số bước bạn sắp phải code.
← Xem tất cả thuật ngữ