JUnit

2013-05-21 7 views
7

में शून्य विधि का परीक्षण कैसे करें JUnit का उपयोग करके शून्य विधि का परीक्षण कैसे करें।JUnit

void add(int a, int b) { 
int c= a + b; 
} 

जावा में जूनिट का उपयोग करके उपरोक्त विधि का परीक्षण कैसे करें।

उत्तर

15

यदि किसी विधि के दुष्प्रभाव होते हैं, तो आप उन्हें अपने जुनीट परीक्षण में देख सकते हैं।

आपके उदाहरण में, विधि का कोई दुष्प्रभाव नहीं है, इसलिए का परीक्षण करने के लिए कुछ भी नहीं है।

यदि आप अभी भी इसका परीक्षण करना चाहते हैं, तो आप ऐसा करने के लिए प्रतिबिंब का उपयोग कर सकते हैं, लेकिन मुझे नहीं लगता कि यह अच्छा अभ्यास है।

आप देख सकते हैं JUnit FAQ संबंधित अनुभाग:

कैसे मैं एक विधि है कि कुछ भी वापस नहीं करता है परीक्षण करते हैं?

अक्सर यदि कोई विधि कोई मान नहीं लौटाती है, तो इसका कुछ दुष्प्रभाव होगा। असल में, अगर यह कोई मूल्य नहीं लौटाता है और इसका दुष्प्रभाव नहीं होता है, तो यह कुछ भी नहीं कर रहा है।

यह सत्यापित करने का एक तरीका हो सकता है कि पक्ष प्रभाव वास्तव में अपेक्षित के रूप में हुआ। उदाहरण के लिए, Collection कक्षाओं में add() विधि पर विचार करें। यह सत्यापित करने के तरीके हैं कि दुष्प्रभाव हुआ (यानी वस्तु को जोड़ा गया था)। आप आकार की जाँच करें और जोर यह क्या उम्मीद है यह है कि कर सकते हैं:

@Test 
public void testCollectionAdd() { 
    Collection collection = new ArrayList(); 
    assertEquals(0, collection.size()); 
    collection.add("itemA"); 
    assertEquals(1, collection.size()); 
    collection.add("itemB"); 
    assertEquals(2, collection.size()); 
} 

एक और दृष्टिकोण MockObjects का उपयोग करना है।

एक संबंधित समस्या परीक्षण के लिए डिज़ाइन करना है। उदाहरण के लिए, यदि आपके पास एक फ़ाइल है जो फ़ाइल में आउटपुट करने के लिए है, तो फ़ाइल नाम में पास न करें, या यहां तक ​​कि FileWriter भी। इसके बजाय, Writer में पास करें। परीक्षण उद्देश्यों के लिए आउटपुट कैप्चर करने के लिए आप में पास कर सकते हैं। फिर आप FileWriter निर्माण को समाहित करने के लिए एक विधि (उदा। writeToFileNamed(String filename)) जोड़ सकते हैं।

0

यदि यह एक "बड़ी" विधि है, तो आप परीक्षण करने के लिए कई टेस्ट करने योग्य तरीकों के लिए इसे निकालने के कुछ निकालने के तरीके को निकालने के लिए निकालें।

या, जैसा कि Whoami कहा, तुम दुष्प्रभाव का परीक्षण कर सकते हैं: डेटाबेस संशोधन, फ़ाइल संशोधन, ...

-4

मान लें अपने वर्ग के नाम Addition है,

@Test 
public void testAdd(){ 
    Addition a = new Addition(); 
    assertEquals(a.add(2,3),5); 
} 

JUnit's FAQ से:

अक्सर यदि कोई विधि कोई मान नहीं लौटाती है, तो इसका कुछ दुष्प्रभाव होगा। असल में, अगर यह कोई मूल्य नहीं लौटाता है और इसका दुष्प्रभाव नहीं होता है, तो यह कुछ भी नहीं कर रहा है।

+0

इस उत्तर में दिए गए कोड को समझ में नहीं आता है। 'a.add (2,3) 'कुछ भी वापस नहीं करता है, इस प्रकार' assertEquals (a.add (2,3), 5); 'संकलित नहीं होगा। – Dukeling