2010-08-11 14 views
32

मेरा इरादा assertArrayEquals(int[], int[]) का उपयोग करना है, मेरी कक्षा में एक विधि के सत्यापन के लिए the API में वर्णित जुनीट विधि का उपयोग करना है।यूनिट परीक्षणों में assertArrayEquals का उपयोग

लेकिन ग्रहण मुझे त्रुटि संदेश दिखाता है कि यह ऐसी विधि को पहचान नहीं सकता है। उन दो आयात जगह पर हैं:

import java.util.Arrays; 
import junit.framework.TestCase; 

क्या मुझे कुछ याद आया?

+0

आप उपयोग कर रहे JUnit के किन संस्करणों के बिना सिर्फ assertEquals उपयोग करना चाहते हैं तो यह उपयोगी हो सकता है? क्या आपने पहले जुनीट दावे का इस्तेमाल किया है? क्या आप वाकई यूनिट परीक्षण चाहते हैं और उदा। 'java.util.Arrays.equals/deepEquals' विधियों? – polygenelubricants

+0

फ्रैंकली मुझे नहीं पता कि जुनीट का कौन सा संस्करण उपयोग कर रहा हूं, लेकिन मुझे पता है कि मैंने ग्रहण संस्करण डाउनलोड किया है: 3.5.1 और जुनीट को शामिल किया गया था। मैं पहले जुनीट दावे का उपयोग नहीं कर रहा हूं, मैं बस सीख रहा हूं। और हाँ, मैं इकाई परीक्षण चाहता हूँ। – Eugene

+0

मुझे पता चला - यह जुनीट 3 है। – Eugene

उत्तर

42

यह JUnit 4 के साथ काम करना चाहिए:

import static org.junit.Assert.*; 
import org.junit.Test; 

public class JUnitTest { 

    /** Have JUnit run this test() method. */ 
    @Test 
    public void test() throws Exception { 

     assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3}); 

    } 
} 

(जवाब this wiki article पर आधारित है)


और इस वर्ष JUnit ढांचे के लिए एक ही (JUnit 3) है:

import junit.framework.TestCase; 

public class JUnitTest extends TestCase { 
    public void test() { 
    assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3}); 
    } 
} 

अंतर ध्यान दें: कोई एनोटेशन और टेस्ट क्लास टेस्टकेस का उप-वर्ग नहीं है (जो लागू करता है ई स्थिर जोरदार तरीकों)।

+1

यह जुनीट 3 है , लेकिन मुझे संदेश मिल रहा है: विवरण \t संसाधन \t पथ \t स्थान \t टाइप विधि assertArrayEquals (int [], int []) डेकटेस्ट – Eugene

+0

प्रकार के लिए अपरिभाषित है क्या आप टेस्टकेस का विस्तार कर रहे हैं? कृपया नमूना कोड पोस्ट करें जो कक्षा में प्रश्न दिखाता है। –

+1

@AndoidNoob - Assert @ assertArrayEquals JUnit 4 के साथ पेश किया गया है। तो आपको या तो JUnit 4 (हमेशा अनुशंसित) पर स्विच करना होगा या कई जावा स्टेटमेंट्स के साथ सरणी की समानता को सत्यापित करना होगा (सुनिश्चित करने के बाद सरणी के माध्यम से लूप, वे हैं एक ही आकार) –

5

जोड़ने के लिए प्रयास करें:

import static org.junit.Assert.*; 

assertArrayEquals एक स्थिर तरीका है।

0

यदि आप जुनीट 3.x शैली परीक्षण लिख रहे हैं जो TestCase का विस्तार करते हैं, तो आपको Assert क्वालीफायर का उपयोग करने की आवश्यकता नहीं है - टेस्टकेस स्वयं को आर्टर्ट बढ़ाता है और इसलिए ये विधियां क्वालीफायर के बिना उपलब्ध हैं।

यदि आप टेस्टकेस बेस क्लास से परहेज करते हुए जुनीट 4 एनोटेशन का उपयोग करते हैं, तो Assert क्वालीफायर की आवश्यकता होती है, साथ ही साथ आयात org.junit.Assert। आप इन मामलों में क्वालीफायर से बचने के लिए एक स्थिर आयात का उपयोग कर सकते हैं, लेकिन इन्हें कुछ लोगों द्वारा poor style माना जाता है।

28

आप अपने JUnit संस्करण के आधार पर

assertTrue(Arrays.equals(expected, actual)); 
संबंधित मुद्दे