Ngôn ngữ Gherkin: Cú pháp, Định dạng & Ví dụ
⚡ Tóm tắt thông minh
Gherkin là một ngôn ngữ dễ đọc đối với người dùng doanh nghiệp, mô tả hành vi của phần mềm mà không cần đi sâu vào chi tiết triển khai. Nó sử dụng các từ khóa Given, When và Then để định nghĩa... Cucumber Các kịch bản kiểm thử được viết bằng ngôn ngữ dễ hiểu, đóng vai trò như tài liệu sống động và là khung sườn cho các bài kiểm thử BDD tự động.

Ngôn ngữ Gherkin là gì?
Gherkin Đây là một ngôn ngữ dễ đọc đối với người làm kinh doanh, giúp bạn mô tả hành vi kinh doanh mà không cần đi sâu vào chi tiết triển khai. Nó là một ngôn ngữ chuyên biệt để định nghĩa các bài kiểm thử trong... Cucumber Định dạng này sử dụng ngôn ngữ đơn giản để mô tả các trường hợp sử dụng và cho phép người dùng loại bỏ các chi tiết logic khỏi các bài kiểm tra hành vi.
Văn bản trong Gherkin đóng vai trò như tài liệu và là khung sườn cho các bài kiểm tra tự động của bạn. Định dạng Gherkin dựa trên Ngữ pháp TreeTop, tồn tại trong hơn 37 ngôn ngữ, vì vậy bạn có thể viết Gherkin bằng hơn 37 ngôn ngữ nói. Kịch bản này phục vụ hai mục đích chính: ghi lại các kịch bản người dùng và cung cấp cơ sở để viết các bài kiểm tra BDD tự động.
Tại sao lại là Gherkin?
Nếu không có một định dạng chung, dễ hiểu, các nhóm kinh doanh và kỹ thuật sẽ mô tả yêu cầu theo những cách khác nhau, dẫn đến hiểu lầm. Gherkin cung cấp cho mọi người một vốn từ vựng duy nhất, có cấu trúc, dễ đọc như tiếng Anh thông thường nhưng lại trực tiếp tương ứng với các bài kiểm tra có thể thực thi.
Cú pháp Gherkin
Gherkin là một ngôn ngữ hướng dòng, giống như YAML và... PythonMỗi dòng được gọi là một bước và bắt đầu bằng một từ khóa. Dấu tab hoặc dấu cách được sử dụng để thụt lề. Có thể thêm chú thích ở bất kỳ đâu nhưng phải bắt đầu bằng dấu #. Trình thông dịch đọc từng dòng sau khi loại bỏ các từ khóa Gherkin như Given, When và Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Tài liệu Gherkin có phần mở rộng .feature và đơn giản chỉ là một tệp văn bản với phần mở rộng mô tả. Cucumber Chương trình đọc tài liệu Gherkin và thực hiện một bài kiểm tra để xác nhận rằng phần mềm hoạt động đúng như cú pháp Gherkin mô tả.
Các thuật ngữ quan trọng được sử dụng trong Gherkin
Các từ khóa chính là: Đặc điểm, Bối cảnh, Kịch bản, Cho trước, Khi nào, Sau đó, Và, Nhưng, và Phác thảo kịch bản. Cucumber Không có quy tắc đặt tên nghiêm ngặt, nhưng một quy ước đặt tên rõ ràng sẽ hữu ích.
Tính năng
Tệp phải có phần mở rộng .feature, và mỗi tệp tính năng chỉ nên mô tả một tính năng duy nhất. Từ khóa Feature bắt đầu bằng Đặc tính: Tiếp theo là một khoảng trắng và tên tính năng.
Kịch bản
Mỗi tập tin tính năng có thể có nhiều kịch bản, và mỗi kịch bản bắt đầu với kịch bản: Tiếp theo là tên kịch bản.
Tiểu sử
Từ khóa Background bổ sung ngữ cảnh cho kịch bản. Nó có thể chứa các bước được chia sẻ bởi mọi kịch bản; điểm khác biệt là các bước đó chạy trước mỗi kịch bản.
Được
Từ khóa Given đưa hệ thống vào một trạng thái đã biết trước khi người dùng bắt đầu tương tác với nó. Nó xác định điều kiện tiên quyết hoặc ngữ cảnh:
Given I am on "/."
Thời Gian
Từ khóa When xác định hành động mà người dùng thực hiện:
When I perform "Sign In."
Sau đó
Từ khóa Then xác định kết quả quan sát được sau hành động trong bước When. Bạn chỉ nên xác minh những thay đổi có thể nhận thấy:
Then I should see "Welcome Tom."
Và nhưng
Bạn có thể có nhiều bước Given, When hoặc Then. Các từ khóa And và But bổ sung thêm các bước để dễ đọc hơn:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And, và But đều là các bước kiểm thử. Trình thông dịch sẽ không báo lỗi nếu bạn hoán đổi vị trí của chúng, nhưng kịch bản sẽ không mạch lạc, vì vậy hãy sử dụng mỗi từ khóa cho mục đích đã định của nó.
Ví dụ về dưa chuột
Ví dụ 1: Tính năng đăng nhập cho một trang mạng xã hội.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
Gherkin phân tích từng bước được viết trong tệp tính năng, và các bước trong tệp tính năng phải khớp với các bước trong tệp định nghĩa bước.
Ví dụ 2: Một kịch bản xác thực người dùng với bối cảnh.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login Given the user is on the login page When the user inputs the correct email address And the user inputs the correct password And the user clicks the Login button Then the user should be authenticated And the user should be redirected to their dashboard
Các phương pháp tốt nhất để sử dụng Gherkin
- Mỗi kịch bản cần được thực hiện riêng biệt và độc lập.
- Mỗi tính năng cần phải có khả năng thực thi độc lập.
- Thông tin về các bước cần được hiển thị riêng biệt.
- Hãy liên kết các kịch bản của bạn với các yêu cầu và track là những kịch bản nào thuộc về từng yêu cầu.
- Tạo các bước theo dạng mô-đun, dễ hiểu và kết hợp các tình huống phổ biến.
- Hãy mô tả chức năng của hệ thống, chứ không phải cách thức hoạt động của nó.
Ưu điểm của Gherkin
- Gherkin đủ đơn giản để những người không phải lập trình viên cũng có thể hiểu được.
- Các lập trình viên có thể sử dụng nó như một nền tảng vững chắc để bắt đầu các bài kiểm tra của họ.
- Nó giúp các câu chuyện người dùng dễ hiểu hơn và nhắm đúng vào các yêu cầu kinh doanh.
- Các nhà quản lý doanh nghiệp và các nhà phát triển phần mềm đều có thể đọc cùng một kịch bản.
- Các trường hợp kiểm thử Gherkin liên kết trực tiếp các bài kiểm thử chấp nhận với các bài kiểm thử tự động.
- Phong cách viết này giúp việc tái sử dụng mã giữa các bài kiểm thử trở nên dễ dàng hơn.
Nhược điểm của Gherkin
- Điều này đòi hỏi mức độ tham gia và hợp tác kinh doanh cao.
- Phương pháp này có thể không hiệu quả trong mọi trường hợp.
- Các bài kiểm tra được viết kém chất lượng có thể làm tăng chi phí bảo trì bài kiểm tra.
