Java में Testing परिचय
Maria Milusheva
Senior Software Engineer
दो मुख्य अवधारणाएँ:
Unit - किसी एप्लिकेशन का सबसे छोटा टेस्ट करने योग्य भाग, जैसे कोई method
Unit testing - ऐसा टेस्ट जो एप्लिकेशन के बाकी हिस्सों से अलग, कोड की एक ही "unit" की शुद्धता जाँचे
नोट्स:
Unit testing छोटे-छोटे logic भागों पर केंद्रित होता है, न कि बड़े परिदृश्य पर
अन्य टेस्टिंग प्रकार बड़े परिदृश्य पर ध्यान देते हैं (जैसे integration)
JUnit का नाम इसलिए है क्योंकि इसका मुख्य उपयोग unit testing है



assertTrue() जाँचता है कि कथन true है:List<String> list = new ArrayList<>();
assertTrue(list.isEmpty()); // No error
assertFalse() उल्टा जाँचता है:List<String> list = new ArrayList<>();
list.add("A");
assertFalse(list.isEmpty()); // No error
null वैरिएबल NullPointerException दे सकते हैं!
null है या नहीं, यह जाँचने के लिए assertions - assertNull() और assertNotNull()
आम उपयोग: कहीं से मिला मान null नहीं है, यह जाँचना
Map<String, Integer> catalogue = new HashMap<>();
catalogue.put("item1", 10);
// No errors
assertNotNull(catalogue.get("item1"));
assertNull(catalogue.get("item2"));
मान लीजिए हम जाँचना चाहते हैं कि ArrayIndexOutOfBoundsException थ्रो होती है:
public String getIndex(String[] array, int index) {
return array[index];
}
JUnit इसे करने के कई तरीके देता है!
JUnit assertThrows() देता है, पर इसमें advanced Java सिंटैक्स (lambda expressions) लगती है
आप assertInstanceOf() ऐसे उपयोग कर सकते हैं:
try {
getIndex(new String[]{}, 4);
} catch (Exception e) {
// अपेक्षित exception की class और actual exception पास करें
assertInstanceOf(ArrayIndexOutOfBoundsException.class, e);
}
एक सामान्य प्रोजेक्ट में सैकड़ों unit tests होते हैं
ये हल्के और आसानी से समझ आने वाले होने चाहिए
इनके नाम जानकारीपूर्ण हों ताकि किसी के फेल होने पर तुरंत समझ आए कि क्या गलत हुआ
उदाहरण: methodUnderTest_expectedBehavior_conditions()
Java में Testing परिचय