2012-09-19 14 views
7

मैंने अभी देखा है कि जुनीट 4.8.1 में समानता के लिए दो बूलियन सरणी का परीक्षण करने के लिए समर्थन शामिल नहीं है। कई अन्य assertErrayEquals हैं लेकिन दो बूलियन सरणी में लेने के लिए कोई नहीं।जुनीट परीक्षण दो बूलियन सरणी

क्या ऐसा करने का कोई उचित तरीका है? मेरे वर्तमान सोच मैं एक सरणी से अधिक पुनरावृति और तरह

Assert.assertTrue(arrayOne[i] == arrayTwo[i]); 

वहाँ यह करने के लिए एक क्लीनर तरीका है कुछ का उपयोग करना होगा कि है?

+0

नहीं, आप संदर्भ – Ilya

+2

'assertTrue (Arrays.equals (array1, array2)) की तुलना करें; ' –

उत्तर

9

आप दो arrays की तुलना करने के लिए Arrays.equals() का उपयोग कर सकते हैं, फिर जोर देकर कहते हैं कि वे समकक्ष हैं।

Assert.assertTrue(Arrays.equals(arrayOne, arrayTwo)); 

Arrays.equals() चेकों की लंबाई और सरणी में प्रत्येक तत्व है, तो आप के लिए नहीं होगा प्रत्येक सरणी पर पुनरावृत्ति के बारे में चिंता करने के लिए।

Assert.assertArrayEquals भी है, जो आपको सही स्थिति प्रदान करेगा जो सरणी अलग-अलग हैं।

उदाहरण: एक परीक्षण के रूप में लिखा के लिए:

@Test 
public void doArrayTest() { 
    int[] foo = {1, 2, 3}; 
    int[] bar = {4, 5, 6}; 
    assertArrayEquals(foo, bar); 
} 

परिणाम होगा:

arrays first differed at element [0]; expected:<1> but was:<4> 

Expected :1 
Actual :4 
+0

Perfecto, धन्यवाद! –

+0

इसके साथ समस्या यह है कि आपके डायग्नोस्टिक्स आपको नहीं बताएंगे कि यदि सरणी अलग हैं तो क्या गलत है, आपको यह पता लगाने के लिए अतिरिक्त काम करना होगा कि वे अलग क्यों हैं – tddmonkey

2

कार्यक्षमता JUnit 4.12 है, जो दिसम्बर 2014

में जारी किया गया था में जोड़ दिया गया है
assertArrayEquals(boolean[] expecteds, boolean[] actuals) 
assertArrayEquals(String message, boolean[] expecteds, boolean[] actuals) 

संदर्भ के लिए: यह पीआर जिसमें प्रतिबद्धता है: https://github.com/junit-team/junit/pull/632

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