ภาษา Gherkin: รูปแบบ ไวยากรณ์ และการทดสอบ Gherkin Cucumber
ภาษา Gherkin คืออะไร?
แตงเล็ก ๆ หนึ่งมีสีเหลือง เป็นภาษาที่อ่านได้ทางธุรกิจซึ่งช่วยให้คุณอธิบายพฤติกรรมทางธุรกิจได้โดยไม่ต้องลงรายละเอียดเกี่ยวกับการดำเนินการ เป็นภาษาเฉพาะโดเมนสำหรับการกำหนดการทดสอบใน Cucumber รูปแบบสำหรับการระบุรายละเอียด ใช้ภาษาธรรมดาเพื่ออธิบายกรณีการใช้งาน และอนุญาตให้ผู้ใช้ลบรายละเอียดตรรกะออกจากการทดสอบพฤติกรรม
ข้อความในภาษา Gherkin ทำหน้าที่เป็นเอกสารและโครงร่างของการทดสอบอัตโนมัติของคุณ รูปแบบ Gherkin ขึ้นอยู่กับไวยากรณ์ TreeTop ซึ่งมีมากกว่า 37 ภาษา ดังนั้นคุณจึงสามารถเขียนแตงของคุณเป็นภาษาพูดได้มากกว่า 37 ภาษา
สคริปต์นี้มีจุดประสงค์หลักสองประการ:
- เอกสารสถานการณ์ของผู้ใช้
- การเขียนแบบทดสอบอัตโนมัติ (BDD)
ทำไมต้องเกอร์คิน?
ความจำเป็นของ Gherkin สามารถอธิบายได้ง่ายๆ ด้วยรูปภาพต่อไปนี้
ก่อนเจอเกอร์คิน
หลังจากเกอร์คิน
ไวยากรณ์ Gherkin
Gherkin เป็นภาษาที่เน้นการใช้เส้นเหมือนกับ YAML และ Python- แต่ละบรรทัดเรียกว่า step และเริ่มต้นด้วยคำสำคัญและสิ้นสุดเทอร์มินัลด้วยการหยุด ใช้แท็บหรือช่องว่างสำหรับการเยื้อง
ในสคริปต์นี้ คุณสามารถเพิ่มความคิดเห็นได้ทุกที่ที่คุณต้องการ แต่ควรขึ้นต้นด้วยเครื่องหมาย # มันจะอ่านแต่ละบรรทัดหลังจากลบคำหลักของ Ghrekin ตามที่กำหนด เมื่อใด จากนั้น ฯลฯ
ขั้นตอนทั่วไปของ Gherkin มีลักษณะเช่นนี้
Gherkin Scripts: เชื่อมโยงแนวคิดของมนุษย์เกี่ยวกับสาเหตุและผลกระทบเข้ากับแนวคิดซอฟต์แวร์เกี่ยวกับอินพุต/กระบวนการ/เอาท์พุต
ไวยากรณ์ Gherkin
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 และไฟล์ฟีเจอร์แต่ละไฟล์ควรมีฟีเจอร์เดียวเท่านั้น คำสำคัญคุณลักษณะอยู่กับคุณลักษณะ: และหลังจากนั้นเพิ่ม ช่องว่างและชื่อของคุณลักษณะจะถูกเขียน
สถานการณ์
ไฟล์คุณลักษณะแต่ละไฟล์อาจมีหลายสถานการณ์ และแต่ละสถานการณ์เริ่มต้นด้วยสถานการณ์: ตามด้วยชื่อสถานการณ์
พื้นหลัง
คำสำคัญพื้นหลังช่วยให้คุณเพิ่มบริบทให้กับสถานการณ์ได้ อาจมีบางขั้นตอนของสถานการณ์จำลอง แต่ข้อแตกต่างเพียงอย่างเดียวคือ ควรรันก่อนแต่ละสถานการณ์
ให้
การใช้คีย์เวิร์ดที่กำหนดคือการทำให้ระบบอยู่ในสถานะที่คุ้นเคยก่อนที่ผู้ใช้จะเริ่มโต้ตอบกับระบบ อย่างไรก็ตาม คุณสามารถละเว้นการเขียนการโต้ตอบของผู้ใช้ในขั้นตอนที่กำหนดได้ หากระบุในขั้นตอน "เงื่อนไขเบื้องต้น"
ไวยากรณ์:
Given
Given - a test step that defines the 'context Given I am on "/."
เมื่อ
เมื่อขั้นตอนคือการกำหนดการกระทำที่ดำเนินการโดยผู้ใช้
ไวยากรณ์:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
แล้วก็
การใช้คำสำคัญ 'แล้ว' คือการดู ผลลัพธ์ หลังจากดำเนินการในขั้นตอนใด อย่างไรก็ตาม คุณสามารถตรวจสอบได้เฉพาะการเปลี่ยนแปลงที่เห็นได้ชัดเจนเท่านั้น
ไวยากรณ์:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
และ&แต่
คุณอาจได้รับหลายรายการเมื่อใดหรือจากนั้น
ไวยากรณ์:
But
A But - additional test step which defines the 'action' 'outcome.' But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed And I write "EmailAddress" with "Tomjohn@gmail.com."
ให้, เมื่อใด, จากนั้น และ แต่เป็นขั้นตอนการทดสอบ คุณสามารถใช้แทนกันได้ ล่ามไม่แสดงข้อผิดพลาดใดๆ อย่างไรก็ตาม เมื่ออ่านแล้วจะไม่มีความหมายใดๆ ทั้งสิ้น
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
ตัวอย่างผักชีฝรั่ง
1 ตัวอย่าง:
Feature: Login functionality of social networking site Facebook. Given: I am a facebook user. When: I enter username as username. And I enter the password as the password Then I should be redirected to the home page of facebook
สถานการณ์ที่กล่าวถึงข้างต้นเป็นคุณลักษณะที่เรียกว่าการเข้าสู่ระบบของผู้ใช้
Gherkin จะวิเคราะห์แต่ละขั้นตอนที่เขียนในไฟล์คำจำกัดความขั้นตอน ดังนั้น ขั้นตอนต่างๆ ถูกกำหนดไว้ในไฟล์คุณลักษณะ และไฟล์ข้อกำหนดขั้นตอนควรตรงกัน
2 ตัวอย่าง:
Feature: User Authentication Background: Given the user is already registered to the website Scenario: 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 And the user should be presented with a success message
แนวทางปฏิบัติที่ดีที่สุดในการใช้ Gherkin
- แต่ละสถานการณ์ควรดำเนินการแยกกัน
- ทุกคุณสมบัติควรจะสามารถดำเนินการได้
- ข้อมูลขั้นตอนควรแสดงแยกกัน
- เชื่อมต่อสถานการณ์ของคุณกับความต้องการของคุณ
- ติดตามสถานการณ์สมมติที่ควรรวมไว้ในเอกสารข้อกำหนดโดยสมบูรณ์
- สร้างขั้นตอนแบบแยกส่วนและเข้าใจง่าย
- พยายามรวมสถานการณ์ทั่วไปทั้งหมดของคุณเข้าด้วยกัน
ข้อดีของเกอร์คิน
- Gherkin นั้นง่ายพอสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์ที่จะเข้าใจ
- โปรแกรมเมอร์สามารถใช้เป็นฐานที่มั่นคงในการเริ่มการทดสอบ
- ทำให้เรื่องราวของผู้ใช้ย่อยง่ายขึ้น
- สคริปต์ Gherkin สามารถเข้าใจได้ง่ายโดยผู้บริหารธุรกิจและนักพัฒนา
- Gherkin Testing มุ่งเป้าไปที่ความต้องการทางธุรกิจ
- ข้อกำหนดด้านการทำงานสัดส่วนที่สำคัญเขียนเป็นเรื่องราวของผู้ใช้
- คุณไม่จำเป็นต้องเชี่ยวชาญเพื่อทำความเข้าใจชุดคำสั่ง Gherkin ขนาดเล็ก
- กรณีการทดสอบ Gherkin เชื่อมโยงการทดสอบการยอมรับเข้ากับการทดสอบอัตโนมัติโดยตรง
- รูปแบบของการเขียนกรณีทดสอบนั้นง่ายต่อการนำโค้ดกลับมาใช้ใหม่ในการทดสอบอื่น ๆ
ข้อเสียของเกอร์คิน
- จำเป็นต้องมีการมีส่วนร่วมทางธุรกิจและความร่วมมือในระดับสูง
- อาจทำงานได้ไม่ดีในทุกสถานการณ์
- การทดสอบที่เขียนไม่ดีสามารถเพิ่มต้นทุนการบำรุงรักษาการทดสอบได้อย่างง่ายดาย
สรุป
- Gherkin เป็นรูปแบบข้อกำหนดของแตงกวา
- Gherkin เป็นภาษาที่เน้นการใช้เส้นเหมือนกับ YAML และ Python
- Gherkin Scripts เชื่อมโยงแนวคิดของมนุษย์เกี่ยวกับสาเหตุและผลกระทบเข้ากับแนวคิดซอฟต์แวร์เกี่ยวกับอินพุต/กระบวนการและเอาต์พุต
- คุณลักษณะ พื้นหลัง สถานการณ์ การให้ เมื่อใด จากนั้น และแต่ถูกนำมาใช้อย่างสำคัญใน Gherkin
- ใน Gherkin แต่ละสถานการณ์ควรดำเนินการแยกกัน
- ข้อได้เปรียบที่ใหญ่ที่สุดของ Gherkin นั้นง่ายพอสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์ที่จะเข้าใจ
- Gherkin Test อาจทำงานได้ไม่ดีในทุกสถานการณ์