คำถามของคุณดูเหมือนสองข้อสำหรับฉัน ในกรณีหนึ่งคุณต้องการเปรียบเทียบกรอบการทดสอบสองกรอบในทางกลับกันคุณต้องการใช้การทดสอบอย่างง่ายดายมีการยืนยันอย่างเป็นธรรมชาติ ฯลฯ ...
ตกลงประการแรก JUnit ได้เล่น Catchup กับ TestNG ในแง่ของฟังก์ชันการทำงานพวกเขาได้เชื่อมช่องว่างบางอย่างกับ v4 แต่ไม่ดีพอในความคิดของฉัน สิ่งต่างๆเช่นคำอธิบายประกอบและข้อมูลผู้ให้บริการยังดีกว่ามากใน TestNG นอกจากนี้ยังมีความยืดหยุ่นมากขึ้นในแง่ของการดำเนินการทดสอบเนื่องจาก TestNG มีการพึ่งพาการทดสอบการจัดกลุ่มและการสั่งซื้อ
JUnit ยังคงกำหนดให้วิธีการก่อน / หลังบางอย่างเป็นแบบคงที่ซึ่ง จำกัด สิ่งที่คุณสามารถทำได้ก่อนที่จะดำเนินการทดสอบ TestNG ไม่เคยมีปัญหานี้
TBH ส่วนใหญ่ความแตกต่างระหว่างสองกรอบงานไม่ได้มีความหมายมากนักเว้นแต่คุณจะมุ่งเน้นไปที่การทดสอบการรวม / ระบบอัตโนมัติ JUnit จากประสบการณ์ของฉันถูกสร้างขึ้นตั้งแต่ต้นสำหรับการทดสอบหน่วยและตอนนี้ถูกผลักไปสู่การทดสอบในระดับที่สูงขึ้นซึ่ง IMO ทำให้เป็นเครื่องมือที่ไม่ถูกต้องสำหรับงาน TestNG ทำได้ดีในการทดสอบหน่วยและเนื่องจากการจัดเตรียมข้อมูลที่แข็งแกร่งและความสามารถในการดำเนินการทดสอบที่ยอดเยี่ยมจึงทำงานได้ดียิ่งขึ้นในระดับการทดสอบการรวม / ระบบอัตโนมัติ
ตอนนี้สำหรับสิ่งที่ฉันเชื่อว่าเป็นปัญหาที่แยกต่างหากวิธีการเขียนการทดสอบที่มีโครงสร้างดีอ่านได้และบำรุงรักษาได้ ส่วนใหญ่ฉันแน่ใจว่าคุณรู้ แต่สิ่งต่างๆเช่นFactory Pattern , Command PatternและPageObjects (หากเว็บไซต์ทดสอบของคุณ) มีความสำคัญเป็นอย่างยิ่งที่จะต้องมีชั้นของนามธรรมระหว่างสิ่งที่คุณทดสอบ (SUT) กับการทดสอบจริง คือ (การยืนยันตรรกะทางธุรกิจ) เพื่อให้มีการยืนยันมาก nicer คุณสามารถใช้Hamcrest ใช้ประโยชน์จากการสืบทอด / อินเทอร์เฟซของ javas เพื่อลดการทำซ้ำและบังคับใช้สามัญ
เกือบลืมใช้Test Data Builder Patternควบคู่ไปกับคำอธิบายประกอบ dataprovider ของ TestNG มีประโยชน์มาก