JUnit การทดสอบแบบกำหนดพารามิเตอร์ด้วยตัวอย่างโดยใช้ @Parameters
การทดสอบพารามิเตอร์ใน Junit คืออะไร
การทดสอบแบบกำหนดพารามิเตอร์คือการดำเนินการทดสอบเดียวกันซ้ำแล้วซ้ำอีกโดยใช้ค่าที่ต่างกัน ช่วยให้นักพัฒนาประหยัดเวลาในการดำเนินการทดสอบเดียวกันซึ่งแตกต่างกันเฉพาะอินพุตและผลลัพธ์ที่คาดหวังเท่านั้น
การใช้การทดสอบแบบกำหนดพารามิเตอร์สามารถตั้งค่าวิธีทดสอบที่ดึงข้อมูลจากแหล่งข้อมูลบางแห่งได้
ลองทดสอบง่ายๆ เพื่อรวมตัวเลขต่างๆ เข้าด้วยกัน โค้ดอาจมีลักษณะดังนี้
วิธีการข้างต้นทำให้เกิดความซ้ำซ้อนอย่างมาก
เราต้องการแนวทางที่ง่ายและ การใช้การทดสอบแบบกำหนดพารามิเตอร์ คุณสามารถเพิ่มวิธีการป้อนข้อมูล 10 รายการได้ และการทดสอบของคุณจะทำงาน 10 ครั้งโดยอัตโนมัติ
ขั้นตอนในการสร้างพารามิเตอร์ JUnit ทดสอบ
โค้ดต่อไปนี้แสดงตัวอย่างสำหรับการทดสอบแบบพารามิเตอร์ โดยจะทดสอบเมธอด sum() ของคลาส Arithmetic:
ขั้นตอน 1) สร้างคลาส ในตัวอย่างนี้ เราจะป้อนตัวเลขสองตัวโดยใช้เมธอด sum (int,int) ซึ่งจะส่งคืนผลรวมของตัวเลขที่กำหนด
ขั้นตอน 2) สร้างคลาสการทดสอบแบบกำหนดพารามิเตอร์
คำอธิบายรหัส
- รหัสบรรทัด 11: ใส่คำอธิบายประกอบคลาสทดสอบของคุณโดยใช้ @runWith(Parameterized.class)
- รหัสบรรทัด 13: ประกาศตัวแปร 'firstNumber' เป็นส่วนตัวและพิมพ์เป็น int
- รหัสบรรทัด 14: ประกาศตัวแปร 'secondNumber' เป็นส่วนตัวและพิมพ์เป็น int
- รหัสบรรทัด 15: ประกาศตัวแปร 'expectedResult' เป็นส่วนตัวและพิมพ์เป็น int
- รหัสบรรทัด 16: ประกาศตัวแปร 'airthematic' เป็นส่วนตัวและพิมพ์เป็น Airthematic
@รันวิท(class_name.คลาส): @รันวิท คำอธิบายประกอบใช้เพื่อระบุชื่อคลาสนักวิ่ง หากเราไม่ระบุประเภทใดๆ เป็นพารามิเตอร์ รันไทม์จะเลือก บล็อคจูนิท4คลาสรันเนอร์ โดยค่าเริ่มต้น
คลาสนี้รับผิดชอบการทดสอบเพื่อรันกับอินสแตนซ์การทดสอบใหม่ มีหน้าที่ในการเรียก JUnit วิธีวงจรชีวิต เช่น การตั้งค่า (เชื่อมโยงทรัพยากร) และการแยกส่วน (เผยแพร่ทรัพยากร)
ในการกำหนดพารามิเตอร์คุณต้องใส่คำอธิบายประกอบโดยใช้ @RunWith และผ่าน .class ที่จำเป็นเพื่อทำการทดสอบ
ขั้นตอน 3) สร้าง Constructor ที่เก็บข้อมูลการทดสอบ จะเก็บตัวแปรไว้ 3 ตัว
ขั้นตอน 4) สร้างวิธีการคงที่ที่สร้างและส่งกลับข้อมูลการทดสอบ
รหัสบรรทัด 32,33: การสร้างอาร์เรย์สองมิติ (จัดเตรียมพารามิเตอร์อินพุตสำหรับการเพิ่มเติม) การใช้เมธอด asList เราจะแปลงข้อมูลให้เป็นประเภทรายการ เนื่องจากประเภทการส่งคืนของอินพุตเมธอดคือการรวบรวม
รหัสบรรทัด 30: การใช้ @พารามิเตอร์ คำอธิบายประกอบเพื่อสร้างชุดข้อมูลอินพุตเพื่อทำการทดสอบของเรา
วิธีการคงที่ที่ระบุโดยคำอธิบายประกอบ @Parameters จะส่งคืนคอลเลกชัน โดยที่แต่ละรายการในคอลเลกชันจะเป็นข้อมูลอินพุตสำหรับการทดสอบซ้ำหนึ่งครั้ง
พิจารณาองค์ประกอบ
1,2,3 {}
Here
หมายเลขแรก = 1
วินาทีหมายเลข=2
ผลลัพธ์ที่คาดหวัง=3
ที่นี่แต่ละองค์ประกอบอาร์เรย์จะถูกส่งผ่านไปยังตัวสร้าง ทีละครั้งเนื่องจากคลาสถูกสร้างอินสแตนซ์หลายครั้ง
ขั้นตอน 5) รหัสที่สมบูรณ์
คำอธิบายรหัส:
- รหัสบรรทัด 25: การใช้คำอธิบายประกอบ @Before เพื่อตั้งค่าทรัพยากร (Airthematic.class ที่นี่) คำอธิบายประกอบ @Before ถูกใช้ที่นี่เพื่อรันก่อนแต่ละกรณีทดสอบ มันมีเงื่อนไขเบื้องต้นของการทดสอบ
- รหัสบรรทัด 36: การใช้คำอธิบายประกอบ @Test เพื่อสร้างการทดสอบของเรา
- รหัสบรรทัด 39: การสร้างคำสั่งยืนยันเพื่อตรวจสอบว่าผลรวมของเราเทียบเท่ากับที่เราคาดหวังหรือไม่
ขั้นตอน 6) สร้างคลาสตัวรันการทดสอบเพื่อรันการทดสอบแบบกำหนดพารามิเตอร์:
คำอธิบายรหัส:
- รหัสบรรทัด 8: ประกาศวิธีหลักของการทดสอบชั้นเรียนซึ่งจะรันของเรา JUnit ทดสอบ
- รหัสบรรทัด 9: การดำเนินการกรณีทดสอบโดยใช้ JunitCore.runclasses จะนำชื่อคลาสการทดสอบเป็นพารามิเตอร์ (ในตัวอย่างของเรา เราใช้ Airthematic.class)
- รหัสบรรทัด 11: การประมวลผลผลลัพธ์โดยใช้ for loop และการพิมพ์ผลลัพธ์ล้มเหลว
- รหัสบรรทัด 13: การพิมพ์ผลลัพธ์สำเร็จ
Output:
นี่คือผลลัพธ์ที่แสดงการทดสอบที่สำเร็จโดยไม่มีการติดตามความล้มเหลวดังที่ระบุด้านล่าง:
ดูผลลัพธ์บนคอนโซลซึ่งแสดงการบวกของตัวเลขสองตัว :-
สรุป
การทดสอบแบบกำหนดพารามิเตอร์ช่วยให้นักพัฒนาดำเนินการทดสอบเดียวกันซ้ำแล้วซ้ำอีกโดยใช้ค่าที่ต่างกัน
คำอธิบายประกอบที่สำคัญที่จะใช้ระหว่างการกำหนดพารามิเตอร์
- @รันวิท
- @พารามิเตอร์