JUnit การทดสอบแบบกำหนดพารามิเตอร์ด้วยตัวอย่างโดยใช้ @Parameters

การทดสอบพารามิเตอร์ใน Junit คืออะไร

การทดสอบแบบกำหนดพารามิเตอร์คือการดำเนินการทดสอบเดียวกันซ้ำแล้วซ้ำอีกโดยใช้ค่าที่ต่างกัน ช่วยให้นักพัฒนาประหยัดเวลาในการดำเนินการทดสอบเดียวกันซึ่งแตกต่างกันเฉพาะอินพุตและผลลัพธ์ที่คาดหวังเท่านั้น

การใช้การทดสอบแบบกำหนดพารามิเตอร์สามารถตั้งค่าวิธีทดสอบที่ดึงข้อมูลจากแหล่งข้อมูลบางแห่งได้

ลองทดสอบง่ายๆ เพื่อรวมตัวเลขต่างๆ เข้าด้วยกัน โค้ดอาจมีลักษณะดังนี้

การทดสอบพารามิเตอร์ใน Junit

วิธีการข้างต้นทำให้เกิดความซ้ำซ้อนอย่างมาก

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

ขั้นตอนในการสร้างพารามิเตอร์ JUnit ทดสอบ

โค้ดต่อไปนี้แสดงตัวอย่างสำหรับการทดสอบแบบพารามิเตอร์ โดยจะทดสอบเมธอด sum() ของคลาส Arithmetic:

ขั้นตอน 1) สร้างคลาส ในตัวอย่างนี้ เราจะป้อนตัวเลขสองตัวโดยใช้เมธอด sum (int,int) ซึ่งจะส่งคืนผลรวมของตัวเลขที่กำหนด

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

ขั้นตอน 2) สร้างคลาสการทดสอบแบบกำหนดพารามิเตอร์

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

คำอธิบายรหัส

  • รหัสบรรทัด 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 ตัว

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

ขั้นตอน 4) สร้างวิธีการคงที่ที่สร้างและส่งกลับข้อมูลการทดสอบ

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

รหัสบรรทัด 32,33: การสร้างอาร์เรย์สองมิติ (จัดเตรียมพารามิเตอร์อินพุตสำหรับการเพิ่มเติม) การใช้เมธอด asList เราจะแปลงข้อมูลให้เป็นประเภทรายการ เนื่องจากประเภทการส่งคืนของอินพุตเมธอดคือการรวบรวม

รหัสบรรทัด 30: การใช้ @พารามิเตอร์ คำอธิบายประกอบเพื่อสร้างชุดข้อมูลอินพุตเพื่อทำการทดสอบของเรา

วิธีการคงที่ที่ระบุโดยคำอธิบายประกอบ @Parameters จะส่งคืนคอลเลกชัน โดยที่แต่ละรายการในคอลเลกชันจะเป็นข้อมูลอินพุตสำหรับการทดสอบซ้ำหนึ่งครั้ง

พิจารณาองค์ประกอบ

1,2,3 {}

Here

หมายเลขแรก = 1

วินาทีหมายเลข=2

ผลลัพธ์ที่คาดหวัง=3

ที่นี่แต่ละองค์ประกอบอาร์เรย์จะถูกส่งผ่านไปยังตัวสร้าง ทีละครั้งเนื่องจากคลาสถูกสร้างอินสแตนซ์หลายครั้ง

ขั้นตอน 5) รหัสที่สมบูรณ์

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

คำอธิบายรหัส:

  • รหัสบรรทัด 25: การใช้คำอธิบายประกอบ @Before เพื่อตั้งค่าทรัพยากร (Airthematic.class ที่นี่) คำอธิบายประกอบ @Before ถูกใช้ที่นี่เพื่อรันก่อนแต่ละกรณีทดสอบ มันมีเงื่อนไขเบื้องต้นของการทดสอบ
  • รหัสบรรทัด 36: การใช้คำอธิบายประกอบ @Test เพื่อสร้างการทดสอบของเรา
  • รหัสบรรทัด 39: การสร้างคำสั่งยืนยันเพื่อตรวจสอบว่าผลรวมของเราเทียบเท่ากับที่เราคาดหวังหรือไม่

ขั้นตอน 6) สร้างคลาสตัวรันการทดสอบเพื่อรันการทดสอบแบบกำหนดพารามิเตอร์:

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

คำอธิบายรหัส:

  • รหัสบรรทัด 8: ประกาศวิธีหลักของการทดสอบชั้นเรียนซึ่งจะรันของเรา JUnit ทดสอบ
  • รหัสบรรทัด 9: การดำเนินการกรณีทดสอบโดยใช้ JunitCore.runclasses จะนำชื่อคลาสการทดสอบเป็นพารามิเตอร์ (ในตัวอย่างของเรา เราใช้ Airthematic.class)
  • รหัสบรรทัด 11: การประมวลผลผลลัพธ์โดยใช้ for loop และการพิมพ์ผลลัพธ์ล้มเหลว
  • รหัสบรรทัด 13: การพิมพ์ผลลัพธ์สำเร็จ

Output:

นี่คือผลลัพธ์ที่แสดงการทดสอบที่สำเร็จโดยไม่มีการติดตามความล้มเหลวดังที่ระบุด้านล่าง:

ขั้นตอนในการสร้างพารามิเตอร์ JUnit เอกสาร

ดูผลลัพธ์บนคอนโซลซึ่งแสดงการบวกของตัวเลขสองตัว :-

JUnit การทดสอบแบบกำหนดพารามิเตอร์

สรุป

การทดสอบแบบกำหนดพารามิเตอร์ช่วยให้นักพัฒนาดำเนินการทดสอบเดียวกันซ้ำแล้วซ้ำอีกโดยใช้ค่าที่ต่างกัน

คำอธิบายประกอบที่สำคัญที่จะใช้ระหว่างการกำหนดพารามิเตอร์

  • @รันวิท
  • @พารามิเตอร์