ภาษา 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."

ให้, เมื่อใด, จากนั้น และ แต่เป็นขั้นตอนการทดสอบ คุณสามารถใช้แทนกันได้ ล่ามไม่แสดงข้อผิดพลาดใดๆ อย่างไรก็ตาม เมื่ออ่านแล้วจะไม่มีความหมายใดๆ ทั้งสิ้น

ข้อกำหนดสำคัญที่ใช้ใน Gherkin
ข้อกำหนดสำคัญที่ใช้ใน Gherkin
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 อาจทำงานได้ไม่ดีในทุกสถานการณ์