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









