TestNG - คำอธิบายประกอบพื้นฐาน
วิธีดั้งเดิมในการระบุวิธีทดสอบใน JUnit 3 คือการใส่คำนำหน้าชื่อด้วยการทดสอบ นี่เป็นวิธีการที่มีประสิทธิภาพมากในการแท็กเมธอดบางอย่างในคลาสเนื่องจากมีความหมายพิเศษ แต่การตั้งชื่อไม่ได้ปรับขนาดได้ดีนัก (ถ้าเราต้องการเพิ่มแท็กเพิ่มเติมสำหรับเฟรมเวิร์กที่แตกต่างกันล่ะ) และค่อนข้างยืดหยุ่น (จะเกิดอะไรขึ้นถ้าเรา ต้องการส่งผ่านพารามิเตอร์เพิ่มเติมไปยังกรอบการทดสอบหรือไม่)
คำอธิบายประกอบถูกเพิ่มอย่างเป็นทางการในภาษา Java ใน JDK 5 และ TestNG ได้เลือกใช้คำอธิบายประกอบเพื่อใส่คำอธิบายประกอบคลาสทดสอบ
นี่คือรายการคำอธิบายประกอบที่ TestNG รองรับ -
| ซีเนียร์ | คำอธิบายประกอบและคำอธิบาย |
|---|---|
| 1 | @BeforeSuite วิธีการใส่คำอธิบายประกอบจะทำงานเพียงครั้งเดียวก่อนที่การทดสอบทั้งหมดในชุดนี้จะทำงาน |
| 2 | @AfterSuite วิธีการใส่คำอธิบายประกอบจะทำงานเพียงครั้งเดียวหลังจากการทดสอบทั้งหมดในชุดนี้ทำงานแล้ว |
| 3 | @BeforeClass วิธีการใส่คำอธิบายประกอบจะถูกเรียกใช้เพียงครั้งเดียวก่อนที่จะเรียกใช้วิธีการทดสอบแรกในคลาสปัจจุบัน |
| 4 | @AfterClass วิธีการใส่คำอธิบายประกอบจะถูกเรียกใช้เพียงครั้งเดียวหลังจากที่รันวิธีการทดสอบทั้งหมดในคลาสปัจจุบันแล้ว |
| 5 | @BeforeTest วิธีการใส่คำอธิบายประกอบจะถูกเรียกใช้ก่อนที่วิธีการทดสอบใด ๆ ที่เป็นของคลาสภายในแท็ก <test> จะถูกเรียกใช้ |
| 6 | @AfterTest วิธีการใส่คำอธิบายประกอบจะถูกเรียกใช้หลังจากวิธีการทดสอบทั้งหมดที่เป็นของคลาสภายในแท็ก <test> ได้ทำงานแล้ว |
| 7 | @BeforeGroups รายชื่อกลุ่มที่วิธีการกำหนดค่านี้จะทำงานก่อน วิธีนี้รับประกันว่าจะทำงานในไม่ช้าก่อนที่จะมีการเรียกใช้วิธีการทดสอบแรกที่เป็นของกลุ่มใด ๆ เหล่านี้ |
| 8 | @AfterGroups รายชื่อกลุ่มที่วิธีการกำหนดค่านี้จะทำงานหลังจากนั้น วิธีนี้รับประกันว่าจะทำงานในไม่ช้าหลังจากมีการเรียกใช้วิธีการทดสอบสุดท้ายที่เป็นของกลุ่มใด ๆ เหล่านี้ |
| 9 | @BeforeMethod วิธีการใส่คำอธิบายประกอบจะถูกเรียกใช้ก่อนวิธีการทดสอบแต่ละวิธี |
| 10 | @AfterMethod วิธีการใส่คำอธิบายประกอบจะทำงานหลังจากแต่ละวิธีการทดสอบ |
| 11 | @DataProvider ทำเครื่องหมายวิธีการเป็นการจัดหาข้อมูลสำหรับวิธีการทดสอบ วิธีการใส่คำอธิบายประกอบต้องส่งคืน Object [] [] โดยที่แต่ละ Object [] สามารถกำหนดรายการพารามิเตอร์ของวิธีการทดสอบได้ วิธีการ @Test ที่ต้องการรับข้อมูลจาก DataProvider นี้จำเป็นต้องใช้ชื่อ dataProvider เท่ากับชื่อของคำอธิบายประกอบนี้ |
| 12 | @Factory
ทำเครื่องหมายวิธีการเป็นโรงงานที่ส่งคืนอ็อบเจ็กต์ที่ TestNG จะใช้เป็นคลาสทดสอบ เมธอดต้องส่งคืน Object [] |
| 13 | @Listeners กำหนดผู้ฟังในชั้นเรียนทดสอบ |
| 14 | @Parameters อธิบายวิธีการส่งพารามิเตอร์ไปยังเมธอด @Test |
| 15 | @Test ทำเครื่องหมายคลาสหรือวิธีการเป็นส่วนหนึ่งของการทดสอบ |
ประโยชน์ของการใช้คำอธิบายประกอบ
ต่อไปนี้เป็นประโยชน์บางประการของการใช้คำอธิบายประกอบ -
TestNG ระบุวิธีการที่สนใจโดยค้นหาคำอธิบายประกอบ ดังนั้นชื่อวิธีการจึงไม่ จำกัด เฉพาะรูปแบบหรือรูปแบบใด ๆ
เราสามารถส่งผ่านพารามิเตอร์เพิ่มเติมไปยังคำอธิบายประกอบ
มีการพิมพ์คำอธิบายประกอบอย่างมากดังนั้นคอมไพเลอร์จะตั้งค่าสถานะข้อผิดพลาดทันที
คลาสทดสอบไม่จำเป็นต้องขยายอะไรอีกต่อไป (เช่น TestCase สำหรับ JUnit 3)