พฤติกรรมขับเคลื่อนการพัฒนา - SpecFlow

SpecFlow เป็นโครงการโอเพ่นซอร์ส ซอร์สโค้ดโฮสต์อยู่บน GitHub ไฟล์คุณลักษณะที่ SpecFlow ใช้เพื่อจัดเก็บเกณฑ์การยอมรับสำหรับคุณลักษณะ (กรณีการใช้งานเรื่องราวของผู้ใช้) ในแอปพลิเคชันของคุณถูกกำหนดโดยใช้ไวยากรณ์ของ Gherkin

Cucumber นำรูปแบบ Gherkin มาใช้และยังใช้โดยเครื่องมืออื่น ๆ ภาษา Gherkin ได้รับการดูแลเป็นโครงการบน GitHub -https://github.com/cucumber/gherkin

องค์ประกอบคุณลักษณะและ SpecFlow

คุณสมบัติที่สำคัญขององค์ประกอบคุณลักษณะคือ -

  • องค์ประกอบคุณลักษณะจัดเตรียมส่วนหัวสำหรับไฟล์คุณลักษณะ องค์ประกอบคุณลักษณะประกอบด้วยชื่อและคำอธิบายระดับสูงของคุณลักษณะที่เกี่ยวข้องในแอปพลิเคชันของคุณ

    • SpecFlow สร้างคลาสทดสอบหน่วยสำหรับองค์ประกอบคุณลักษณะโดยมีชื่อคลาสที่มาจากชื่อของคุณลักษณะ

    • SpecFlow สร้างการทดสอบหน่วยปฏิบัติการจากสถานการณ์จำลองที่แสดงถึงเกณฑ์การยอมรับ

  • ไฟล์ฟีเจอร์อาจมีหลายสถานการณ์ที่ใช้อธิบายการทดสอบการยอมรับของฟีเจอร์

    • สถานการณ์มีชื่อและอาจประกอบด้วยขั้นตอนสถานการณ์จำลองหลายขั้นตอน

    • SpecFlow สร้างวิธีการทดสอบหน่วยสำหรับแต่ละสถานการณ์โดยมีชื่อวิธีการที่ได้มาจากชื่อของสถานการณ์จำลอง

หลายขั้นตอนสถานการณ์

สถานการณ์สามารถมีหลายขั้นตอนสถานการณ์จำลอง มีขั้นตอนสามประเภทที่กำหนดเงื่อนไขเบื้องต้นการดำเนินการหรือขั้นตอนการตรวจสอบซึ่งประกอบด้วยการทดสอบการยอมรับ

  • ขั้นตอนประเภทต่างๆเริ่มต้นด้วยไฟล์ Given, When หรือ Then คำหลักตามลำดับและขั้นตอนที่ตามมาของประเภทเดียวกันสามารถเชื่อมโยงโดยใช้ And และ But คำหลัก

  • ไวยากรณ์ของ Gherkin อนุญาตให้ใช้ขั้นตอนทั้งสามประเภทนี้ร่วมกันได้ แต่สถานการณ์มักจะมีบล็อกที่แตกต่างกัน Given, When และ Then งบ

  • ขั้นตอนสถานการณ์จำลองถูกกำหนดโดยใช้ข้อความและสามารถมีตารางเพิ่มเติมที่เรียกว่า DataTable หรือข้อความหลายบรรทัดที่เรียกว่าอาร์กิวเมนต์ DocString

  • ขั้นตอนสถานการณ์เป็นวิธีหลักในการเรียกใช้โค้ดที่กำหนดเองเพื่อทำให้แอปพลิเคชันเป็นอัตโนมัติ

  • SpecFlow สร้างการเรียกภายในวิธีการทดสอบหน่วยสำหรับแต่ละขั้นตอนสถานการณ์ การเรียกใช้ดำเนินการโดยรันไทม์ SpecFlow ที่จะดำเนินการกำหนดขั้นตอนที่ตรงกับขั้นตอนสถานการณ์จำลอง

  • การจับคู่เสร็จสิ้นที่รันไทม์ดังนั้นการทดสอบที่สร้างขึ้นสามารถรวบรวมและดำเนินการได้แม้ว่าจะยังไม่ได้ใช้การเชื่อมโยงก็ตาม

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

แท็ก

แท็กคือเครื่องหมายที่สามารถกำหนดให้กับคุณลักษณะและสถานการณ์ต่างๆ การกำหนดแท็กให้กับคุณลักษณะจะเทียบเท่ากับการกำหนดแท็กให้กับสถานการณ์ทั้งหมดในไฟล์คุณลักษณะ ชื่อแท็กที่มีแท็ก @ นำหน้า

  • หากได้รับการสนับสนุนโดยกรอบการทดสอบหน่วย SpecFlow จะสร้างประเภทจากแท็ก

  • ชื่อหมวดหมู่ที่สร้างขึ้นจะเหมือนกับชื่อของแท็ก แต่ไม่มี @ นำหน้า

  • คุณสามารถกรองและจัดกลุ่มการทดสอบที่จะดำเนินการโดยใช้หมวดหมู่การทดสอบหน่วยเหล่านี้ ตัวอย่างเช่นคุณสามารถติดแท็กการทดสอบที่สำคัญด้วย @important จากนั้นดำเนินการทดสอบเหล่านี้บ่อยขึ้น

องค์ประกอบพื้นหลัง

อิลิเมนต์ภาษาพื้นหลังอนุญาตให้ระบุเงื่อนไขเบื้องต้นทั่วไปสำหรับสถานการณ์ทั้งหมดในไฟล์คุณลักษณะ

  • ส่วนพื้นหลังของไฟล์สามารถมีขั้นตอนสถานการณ์จำลองอย่างน้อยหนึ่งขั้นตอนที่ดำเนินการก่อนขั้นตอนอื่น ๆ ของสถานการณ์

  • SpecFlow สร้างวิธีการจากองค์ประกอบพื้นหลังที่เรียกใช้จากการทดสอบหน่วยทั้งหมดที่สร้างขึ้นสำหรับสถานการณ์จำลอง

เค้าโครงสถานการณ์

เค้าโครงสถานการณ์สามารถใช้เพื่อกำหนดการทดสอบการยอมรับจากข้อมูล เค้าร่างสถานการณ์จะประกอบด้วยข้อกำหนดเทมเพลตสถานการณ์ (สถานการณ์จำลองที่มีตัวยึดข้อมูลโดยใช้ไวยากรณ์ <placeholder>) และชุดตัวอย่างที่ระบุค่าสำหรับตัวยึดตำแหน่ง

  • หากเฟรมเวิร์กการทดสอบหน่วยรองรับ SpecFlow จะสร้างการทดสอบตามแถวจากโครงร่างสถานการณ์

  • มิฉะนั้นจะสร้างวิธีลอจิกทดสอบหน่วยพารามิเตอร์สำหรับโครงร่างสถานการณ์จำลองและวิธีการทดสอบแต่ละหน่วยสำหรับชุดตัวอย่างแต่ละชุด

  • เพื่อให้สามารถตรวจสอบย้อนกลับได้ดีขึ้นชื่อวิธีการทดสอบหน่วยที่สร้างขึ้นจะได้มาจากชื่อโครงร่างสถานการณ์และค่าแรกของตัวอย่าง (คอลัมน์แรกของตารางตัวอย่าง)

  • ดังนั้นจึงเป็นแนวทางปฏิบัติที่ดีในการเลือกพารามิเตอร์ที่ไม่ซ้ำกันและเป็นคำอธิบายเป็นคอลัมน์แรกในชุดตัวอย่าง

  • เนื่องจากไวยากรณ์ของ Gherkin ต้องการให้คอลัมน์ตัวอย่างทั้งหมดมีตัวยึดตำแหน่งที่ตรงกันในโครงร่างสถานการณ์คุณยังสามารถแนะนำคอลัมน์ที่กำหนดเองในชุดตัวอย่างที่ใช้เพื่อตั้งชื่อการทดสอบให้อ่านง่ายขึ้น

  • SpecFlow ทำการแทนที่ตัวยึดตำแหน่งเป็นเฟสแยกก่อนที่จะจับคู่การโยงขั้นตอน

  • การใช้งานและพารามิเตอร์ในการโยงขั้นตอนจึงไม่ขึ้นกับว่าจะดำเนินการผ่านสถานการณ์จำลองโดยตรงหรือโครงร่างสถานการณ์

  • สิ่งนี้ช่วยให้คุณระบุตัวอย่างเพิ่มเติมในการทดสอบการยอมรับในภายหลังโดยไม่ต้องเปลี่ยนการเชื่อมโยงขั้นตอน

ความคิดเห็น

คุณสามารถเพิ่มบรรทัดความคิดเห็นลงในไฟล์ฟีเจอร์ได้ทุกที่โดยขึ้นต้นบรรทัดด้วย # อย่างไรก็ตามโปรดระวังเนื่องจากความคิดเห็นในข้อกำหนดของคุณอาจเป็นสัญญาณว่ามีการระบุเกณฑ์การยอมรับผิด SpecFlow ละเว้นบรรทัดข้อคิดเห็น