TestNG - ภาพรวม
การทดสอบเป็นกระบวนการตรวจสอบการทำงานของแอปพลิเคชันเพื่อให้แน่ใจว่าทำงานได้ตามข้อกำหนด การทดสอบหน่วยเป็นภาพรวมในระดับผู้พัฒนาซึ่งมีการใช้มาตรการที่เพียงพอเพื่อทดสอบเอนทิตี (คลาสหรือวิธีการ) เดียวเพื่อให้แน่ใจว่าผลิตภัณฑ์ขั้นสุดท้ายตรงตามข้อกำหนด
JUnit ได้ผลักดันให้นักพัฒนาเข้าใจถึงประโยชน์ของการทดสอบโดยเฉพาะการทดสอบหน่วยเมื่อเปรียบเทียบกับกรอบการทดสอบอื่น ๆ ด้วยการใช้สถาปัตยกรรมที่ค่อนข้างเรียบง่ายใช้งานได้จริงและเข้มงวด JUnit จึงสามารถ "แพร่เชื้อ" ให้กับนักพัฒนาจำนวนมากได้ ลองดูบทช่วยสอนของเราเกี่ยวกับ JUnit เพื่อให้เข้าใจถึงคุณสมบัติต่างๆเป็นอย่างดี ในขณะเดียวกัน JUnit ก็มีข้อบกพร่องบางประการเช่นกันซึ่งแสดงไว้ด้านล่าง -
เริ่มต้นออกแบบมาเพื่อเปิดใช้งานการทดสอบหน่วยเท่านั้นตอนนี้ใช้สำหรับการทดสอบทุกประเภท
ไม่สามารถทำการทดสอบการพึ่งพาได้
การควบคุมการกำหนดค่าไม่ดี (setUp / tearDown)
ล่วงล้ำ (บังคับให้คุณขยายชั้นเรียนและตั้งชื่อวิธีการของคุณด้วยวิธีใดวิธีหนึ่ง)
รูปแบบการเขียนโปรแกรมแบบคงที่ (บังคับให้คุณคอมไพล์ใหม่โดยไม่จำเป็น)
การจัดการชุดทดสอบต่างๆในโครงการที่ซับซ้อนอาจเป็นเรื่องยุ่งยากมาก
TestNG คืออะไร?
คำจำกัดความของ TestNG ตามเอกสารมีดังนี้ -
TestNG เป็นกรอบการทดสอบที่ได้รับแรงบันดาลใจจาก JUnit และ NUnit แต่มีฟังก์ชันใหม่บางอย่างที่ทำให้มีประสิทธิภาพและใช้งานง่าย
TestNG เป็นกรอบการทดสอบอัตโนมัติแบบโอเพนซอร์ส ที่ไหนNG หมายถึง Nต่อGeneration. TestNG คล้ายกับ JUnit (โดยเฉพาะ JUnit 4) แต่ไม่ใช่ส่วนขยาย JUnit ได้รับแรงบันดาลใจจาก JUnit ได้รับการออกแบบมาให้ดีกว่า JUnit โดยเฉพาะอย่างยิ่งเมื่อทดสอบคลาสรวม ผู้สร้าง TestNG เป็นเซดริก Beust
การขจัดข้อ จำกัด ส่วนใหญ่ของเฟรมเวิร์กรุ่นเก่า TestNG ช่วยให้นักพัฒนาสามารถเขียนการทดสอบที่ยืดหยุ่นและมีประสิทธิภาพมากขึ้น เนื่องจากมันยืมอย่างมากจาก Java Annotations (มาพร้อมกับ JDK 5.0) เพื่อกำหนดการทดสอบจึงสามารถแสดงวิธีใช้คุณลักษณะใหม่ของภาษา Java ในสภาพแวดล้อมการใช้งานจริง
คุณสมบัติ TestNG
รองรับคำอธิบายประกอบ
TestNG ใช้คุณสมบัติ Java และ OO เพิ่มเติม
รองรับการทดสอบคลาสรวม (เช่นโดยค่าเริ่มต้นไม่จำเป็นต้องสร้างอินสแตนซ์คลาสทดสอบใหม่สำหรับทุกวิธีการทดสอบ)
แยกรหัสทดสอบเวลาคอมไพล์ออกจากการกำหนดค่ารันไทม์ / ข้อมูลข้อมูล
การกำหนดค่ารันไทม์ที่ยืดหยุ่น
เปิดตัว 'กลุ่มทดสอบ' เมื่อคุณรวบรวมการทดสอบของคุณแล้วคุณสามารถขอให้ TestNG เรียกใช้การทดสอบ "ส่วนหน้า" ทั้งหมดหรือการทดสอบ "เร็ว" "ช้า" "ฐานข้อมูล" ฯลฯ
รองรับวิธีการทดสอบขึ้นอยู่กับการทดสอบแบบขนานการทดสอบโหลดและความล้มเหลวบางส่วน
API ปลั๊กอินที่ยืดหยุ่น
รองรับการทดสอบแบบมัลติเธรด