พฤติกรรมขับเคลื่อนการพัฒนา - 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 ละเว้นบรรทัดข้อคิดเห็น