2017-02-01 5 views
11

मैं इन दोनों विधियों के बारे में उलझन में हूं, क्योंकि दोनों एक ही काम कर सकते हैं, जैसे कि मेरे कोड के नीचे स्निपेट।टेस्टएनजी में assertEquals() बनाम assertTrue() के बीच वास्तविक अंतर क्या है?

assertEquals()

String a = "Hello"; 
String b = "Hello"; 

assertEquals(a, b); 

assertTrue()

assertTrue(a.equals(b)); 

किसी को भी मुझे इन दोनों दो तरीकों के बीच वास्तविक अंतर बता सकते हैं का उपयोग का उपयोग करना?

उत्तर

27

assertEquals बेहतर है क्योंकि यह इकाई परीक्षण फ्रेमवर्क को वास्तव में आपकी रुचि रखने के बारे में अधिक जानकारी देता है। इससे परीक्षण विफल होने पर बेहतर त्रुटि जानकारी प्रदान करने की अनुमति मिलती है।

मान लीजिए आप

String a = "Hello"; 
String b = "Hi"; 

फिर परीक्षण विफलताओं की तरह कुछ लग सकता था:

// From assertEquals(a, b) 
Error: Expected "Hi"; was "Hello" 

// From assertTrue: 
Error: Expected true; was false 

उन में से कौन सा आपको लगता है आप अधिक जानकारी देता है, ध्यान में रखते हुए कि मूल्यों शायद होगा है उचित जटिल गणना का नतीजा?

(ये त्रुटि संदेश बने होते हैं के रूप में मैं TestNG स्थापित नहीं है, लेकिन किसी बात इकाई परीक्षण चौखटे के तरह रहे देते हैं।)

+9

इसके अलावा, 'assertEquals (ए, बी)' है शून्य-सुरक्षित, 'assertTrue (a.equals (बी)) 'नहीं है। – Andreas

+0

धन्यवाद, @ जोन बेहतर स्पष्टीकरण के लिए और इन दो तरीकों के बारे में मेरी अवधारणा को साफ़ करने के लिए .-) –

संबंधित मुद्दे