आपके प्रश्न से मुझे दो प्रश्न लगते हैं। एक पर आप दो परीक्षण रूपरेखाओं की तुलना करना चाहेंगे, दूसरी ओर आप आसानी से परीक्षण लागू करना चाहते हैं, प्राकृतिक दावे आदि हैं ...
ठीक है, सबसे पहले JUnit कार्यक्षमता के मामले में TestNG के साथ कैचअप खेल रहा है, उन्होंने v4 के साथ कुछ अंतर को पाटा है, लेकिन मेरी राय में यह पर्याप्त नहीं है। TestNG में एनोटेशन और डेटाप्रॉइडर्स जैसी चीजें अभी भी बहुत बेहतर हैं। टेस्ट निष्पादन के मामले में भी वे अधिक लचीले हैं, क्योंकि टेस्टएनजी में टेस्ट डिपेंडेंसी, ग्रुपिंग और ऑर्डरिंग है।
JUnit को स्टैटिक होने के लिए अभी भी पहले / बाद के तरीकों की आवश्यकता है, जो कि आप परीक्षणों के चलने से पहले क्या कर सकते हैं, TestNG में यह समस्या कभी नहीं होती है।
जब तक आपका एकीकरण / स्वचालन परीक्षण पर ध्यान केंद्रित नहीं किया जाता है, तब तक टीबीएच, ज्यादातर दो रूपरेखाओं के बीच अंतर ज्यादा मायने नहीं रखता है। मेरे अनुभव से JUnit को यूनिट परीक्षण के लिए जमीन से बनाया गया है और अब परीक्षण के उच्च स्तर की ओर धकेला जा रहा है, जो IMO इसे नौकरी के लिए गलत उपकरण बनाता है। TestNG इकाई परीक्षण में अच्छी तरह से करता है और इसकी मजबूत डेटाप्रॉइडिंग और महान परीक्षण निष्पादन क्षमताओं के कारण, एकीकरण / स्वचालन परीक्षण स्तर पर भी बेहतर काम करता है।
अब मेरा मानना है कि एक अलग मुद्दा है, कैसे अच्छी तरह से संरचित, पठनीय और बनाए रखने योग्य परीक्षण लिखने के लिए। इसमें से अधिकांश मुझे यकीन है कि आप जानते हैं, लेकिन फैक्ट्री पैटर्न , कमांड पैटर्न और पेजऑब्जेक्ट्स (यदि आपकी परीक्षण वेबसाइटें) जैसी चीजें महत्वपूर्ण हैं, तो आपके परीक्षण (SUT) और वास्तविक परीक्षण के बीच अमूर्तता की एक परत होना बहुत महत्वपूर्ण है। है (व्यापार तर्क का दावा)। बहुत अच्छे दावे करने के लिए, आप Hamcrest का उपयोग कर सकते हैं । पुनरावृत्ति को कम करने और समानता को लागू करने के लिए जावा विरासत / इंटरफेस का उपयोग करें।
लगभग भूल गए, टेस्ट डेटा बिल्डर पैटर्न का भी उपयोग करें , TestNG के डेटाप्रोइडर एनोटेशन के साथ युग्मित यह बहुत उपयोगी है।