ภาษา Gherkin: ไวยากรณ์ รูปแบบ และตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
Gherkin เป็นภาษาที่เข้าใจง่ายสำหรับธุรกิจ ซึ่งอธิบายพฤติกรรมของซอฟต์แวร์โดยไม่ต้องลงรายละเอียดการใช้งาน โดยใช้คำหลัก Given, When และ Then ในการกำหนดเงื่อนไข Cucumber สถานการณ์ทดสอบที่อธิบายด้วยภาษาง่ายๆ ทำหน้าที่เป็นเอกสารอ้างอิงที่มีชีวิตและเป็นโครงสร้างพื้นฐานของการทดสอบ BDD แบบอัตโนมัติ

ภาษา Gherkin คืออะไร?
แตงเล็ก ๆ หนึ่งมีสีเหลือง เป็นภาษาที่เข้าใจง่ายในเชิงธุรกิจ ช่วยให้คุณอธิบายพฤติกรรมทางธุรกิจได้โดยไม่ต้องลงรายละเอียดการใช้งาน เป็นภาษาเฉพาะโดเมนสำหรับการกำหนดการทดสอบใน Cucumber รูปแบบนี้ใช้ภาษาที่เข้าใจง่ายในการอธิบายกรณีการใช้งาน และช่วยให้ผู้ใช้สามารถตัดรายละเอียดเชิงตรรกะออกจากการทดสอบพฤติกรรมได้
ข้อความใน Gherkin ทำหน้าที่เป็นทั้งเอกสารประกอบและโครงร่างสำหรับการทดสอบอัตโนมัติของคุณ รูปแบบ Gherkin นั้นอิงตามไวยากรณ์ TreeTop ซึ่งมีอยู่ในมากกว่า 37 ภาษา ดังนั้นคุณจึงสามารถเขียน Gherkin ได้ในภาษาพูดมากกว่า 37 ภาษา สคริปต์นี้มีวัตถุประสงค์หลักสองประการ คือ ใช้บันทึกสถานการณ์การใช้งานของผู้ใช้ และเป็นพื้นฐานสำหรับการเขียนการทดสอบ BDD แบบอัตโนมัติ
ทำไมต้องเกอร์คิน?
หากไม่มีรูปแบบภาษาที่เข้าใจง่ายและใช้ร่วมกันได้ ทีมธุรกิจและทีมเทคนิคจะอธิบายข้อกำหนดแตกต่างกัน ซึ่งก่อให้เกิดความเข้าใจผิด Gherkin ช่วยให้ทุกคนมีคำศัพท์ที่มีโครงสร้างเดียวที่อ่านง่ายเหมือนภาษาอังกฤษทั่วไป แต่สามารถแปลงเป็นชุดทดสอบที่สามารถดำเนินการได้โดยตรง
ไวยากรณ์ Gherkin
Gherkin เป็นภาษาที่เน้นการเขียนตามบรรทัด เช่นเดียวกับ YAML และ Pythonแต่ละบรรทัดเรียกว่าขั้นตอนและเริ่มต้นด้วยคำหลัก ใช้แท็บหรือช่องว่างสำหรับการเยื้อง สามารถเพิ่มความคิดเห็นได้ทุกที่ แต่ต้องเริ่มต้นด้วยเครื่องหมาย # ตัวแปลภาษาจะอ่านแต่ละบรรทัดหลังจากลบคำหลักของ Gherkin เช่น Given, When และ Then ออกแล้ว
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
ไฟล์เอกสาร Gherkin มีนามสกุล .feature และเป็นเพียงไฟล์ทดสอบที่มีนามสกุลที่สื่อความหมายเท่านั้น Cucumber อ่านเอกสาร Gherkin และดำเนินการทดสอบเพื่อตรวจสอบว่าซอฟต์แวร์ทำงานตามที่ไวยากรณ์ Gherkin อธิบายไว้
คำศัพท์สำคัญที่ใช้ในร้าน Gherkin
คำหลักสำคัญได้แก่ คุณลักษณะ, พื้นหลัง, สถานการณ์, กำหนดให้, เมื่อใด, จากนั้น, และ, แต่ และโครงร่างสถานการณ์ Cucumber ไม่มีกฎการตั้งชื่อที่เคร่งครัด แต่การมีหลักเกณฑ์การตั้งชื่อที่ชัดเจนจะช่วยได้
คุณสมบัติ (Feature)
ไฟล์ควรมีนามสกุล .feature และแต่ละไฟล์ฟีเจอร์ควรอธิบายเพียงฟีเจอร์เดียวเท่านั้น คำหลัก Feature ขึ้นต้นด้วย คุณสมบัติ: ตามด้วยเว้นวรรคและชื่อฟีเจอร์
สถานการณ์
ไฟล์ฟีเจอร์แต่ละไฟล์อาจมีหลายสถานการณ์ และแต่ละสถานการณ์เริ่มต้นด้วย สถานการณ์สมมติ: ตามด้วยชื่อสถานการณ์
พื้นหลัง
คีย์เวิร์ด Background เพิ่มบริบทให้กับสถานการณ์ โดยอาจประกอบด้วยขั้นตอนที่ใช้ร่วมกันในทุกสถานการณ์ ความแตกต่างคือขั้นตอนเหล่านั้นจะทำงานก่อนสถานการณ์แต่ละครั้ง
ให้
คำหลัก Given จะกำหนดสถานะที่ทราบล่วงหน้าให้กับระบบก่อนที่ผู้ใช้จะเริ่มโต้ตอบกับระบบ โดยจะกำหนดเงื่อนไขหรือบริบทเบื้องต้น:
Given I am on "/."
เมื่อ
คำหลัก "When" กำหนดการกระทำที่ผู้ใช้ดำเนินการ:
When I perform "Sign In."
แล้วก็
คำว่า "Then" กำหนดผลลัพธ์ที่สังเกตได้หลังจากดำเนินการในขั้นตอน "When" คุณควรตรวจสอบเฉพาะการเปลี่ยนแปลงที่สังเกตเห็นได้เท่านั้น:
Then I should see "Welcome Tom."
และ&แต่
คุณอาจมีขั้นตอน Given, When หรือ Then หลายขั้นตอน คำหลัก And และ But จะเพิ่มขั้นตอนพิเศษเพื่อให้อ่านง่ายขึ้น:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And และ But ล้วนเป็นขั้นตอนการทดสอบ ตัวแปลภาษาจะไม่แสดงข้อผิดพลาดหากคุณสลับคำเหล่านี้ แต่สถานการณ์จะอ่านไม่เข้าใจ ดังนั้นควรใช้คำหลักแต่ละคำตามวัตถุประสงค์ที่กำหนดไว้
ตัวอย่างผักชีฝรั่ง
1 ตัวอย่าง: ฟังก์ชันการเข้าสู่ระบบสำหรับเว็บไซต์เครือข่ายสังคมออนไลน์
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 จะวิเคราะห์แต่ละขั้นตอนที่เขียนไว้ในไฟล์คุณลักษณะ และขั้นตอนในไฟล์คุณลักษณะจะต้องตรงกับขั้นตอนในไฟล์คำจำกัดความขั้นตอน
2 ตัวอย่าง: สถานการณ์การตรวจสอบสิทธิ์ผู้ใช้โดยมีพื้นหลังเป็นตัวช่วย
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
แนวปฏิบัติที่ดีที่สุดในการใช้แตงกวาดอง
- แต่ละสถานการณ์ควรดำเนินการแยกกันและเป็นอิสระจากกัน
- ทุกฟังก์ชันควรสามารถเรียกใช้งานได้ด้วยตัวเอง
- ควรแสดงข้อมูลขั้นตอนแยกต่างหาก
- เชื่อมโยงสถานการณ์ของคุณเข้ากับข้อกำหนดและความต้องการของคุณ track สถานการณ์ใดบ้างที่ตรงกับข้อกำหนดแต่ละข้อ
- สร้างขั้นตอนแบบโมดูลาร์ที่เข้าใจง่าย และผสานรวมสถานการณ์ทั่วไปเข้าด้วยกัน
- อธิบายว่าระบบทำอะไร ไม่ใช่ว่ามันทำงานอย่างไร
ข้อดีของเกอร์คิน
- Gherkin นั้นเรียบง่ายพอที่คนที่ไม่ใช่โปรแกรมเมอร์จะเข้าใจได้
- โปรแกรมเมอร์สามารถใช้มันเป็นพื้นฐานที่มั่นคงในการเริ่มต้นการทดสอบของพวกเขาได้
- มันทำให้เรื่องราวของผู้ใช้เข้าใจง่ายขึ้นและตรงกับความต้องการทางธุรกิจ
- ทั้งผู้บริหารธุรกิจและนักพัฒนาสามารถอ่านสคริปต์เดียวกันได้
- กรณีทดสอบ Gherkin เชื่อมโยงการทดสอบการยอมรับเข้ากับการทดสอบอัตโนมัติโดยตรง
- รูปแบบการเขียนนี้ทำให้การนำโค้ดไปใช้ซ้ำในการทดสอบต่างๆ ทำได้ง่ายขึ้น
ข้อเสียของเกอร์คิน
- จำเป็นต้องอาศัยการมีส่วนร่วมและความร่วมมือทางธุรกิจในระดับสูง
- วิธีนี้อาจใช้ไม่ได้ผลดีในทุกสถานการณ์
- ข้อสอบที่เขียนไม่ดีอาจทำให้ค่าใช้จ่ายในการบำรุงรักษาข้อสอบเพิ่มขึ้น
