लोड हो रहा है...

Java में JUnit

जाँचें कि एक छोटी विधि वही मान लौटाती है जो आप चाहते थे। SumCheck.java में package-private Sum और add रखें, सार्वजनिक class SumCheck रखें, एक विधि को @Test से चिह्नित करें, और assertEquals(5, Sum.add(2, 3)); बुलाएँ। जब 2 + 3 का मान 5 हो, जाँच पास होती है। दूसरी डेमो Sum.add(4, 5) को 9 से जाँचती है। वैकल्पिक JAR अगले पृष्ठ के लिए छोड़ दें। यह पाठ JUnit जाँच है assertEquals के साथ, Records accessor प्रिंट नहीं और Streams pipeline नहीं।

एक जाँच जो 5 चाहती है

SumCheck.java खोलें। सार्वजनिक class का नाम SumCheck रखें। बचे हुए Records Card डेमो, बचे हुए Streams Pipe pipeline, बचे lambda Cue चलना, और Box के बचे Scanner prompt हटाएँ अगर वे JUnit कहानी दबा दें। शिक्षण फ़ाइल एक test class है, oak प्रिंट करने वाला main नहीं।
फ़ाइल के ऊपर import जोड़ें:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
एक छोटा helper उसी फ़ाइल में रखें:
class Sum {
static int add(int left, int right) {
return left + right;
}
}
SumCheck के अंदर एक test विधि लिखें:
@Test
void addsTwoAndThree() {
assertEquals(5, Sum.add(2, 3));
}
@Test विधि को ऐसी जाँच चिह्नित करता है जिसे runner चलाना चाहिए। assertEquals पहले अपेक्षित मान, फिर वास्तविक मान लेता है। यहाँ अपेक्षित 5 है और वास्तविक Sum.add(2, 3) है। मान मिलते हैं, इसलिए जाँच पास होती है।

SumCheck assertEquals wants 5

java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class Sum {
    static int add(int left, int right) {
        return left + right;
    }
}

public class SumCheck {
    @Test
    void addsTwoAndThree() {
        assertEquals(5, Sum.add(2, 3));
    }
}

इस फ़ाइल को classpath पर JUnit 5 runner के साथ compile और चलाएँ — IDE का test बटन, या console launcher जो class SumCheck चुनता है। पाठ्यक्रम की आदत अभी भी यही है: «test source compile करें, फिर जाँचें चलाएँ।» इस पृष्ठ पर आप साधारण main प्रोग्राम की तरह java SumCheck नहीं चलाते। आप t.name() प्रिंट नहीं करते। आप runner से @Test विधियाँ चलाने को कहते हैं।
जाँच को एक बार चलाकर देखें। Sum.add(2, 3) मान 5 लौटाता है। assertEquals(5, ...) उस 5 की अपेक्षित 5 से तुलना करता है। मान मिलते हैं। जाँच पास होती है। रिपोर्ट पंक्ति runner के अनुसार हरा परिणाम या छोटा सफलता सार दिखा सकती है। महत्वपूर्ण शिक्षण तथ्य यह है कि अपेक्षित और वास्तविक सहमत थे।
विधि देखते हुए शुरुआती नियम कहें: @Test जाँच चिह्नित करता है; assertEquals(expected, actual) तुलना करता है; विधि का नाम ऐसा रखें कि इंसान पढ़ सके। इस पृष्ठ पर JAR पैकेजिंग डेमो न बनाएँ। JAR अगले वैकल्पिक पाठ का इंतज़ार करता है। पहली डेमो में 9 के खिलाफ असफल जाँच को पहली डेमो न मानें — पहली डेमो 5 चाहती है।
यदि बचे Records Card फ़ाइल से अभी भी oak दिखे, SumCheck पर जाएँ और assertEquals(5, Sum.add(2, 3)); रखें। यदि runner को कोई test न मिले, पुष्टि करें विधि पर @Test है और वह ऐसे private नहीं है जिसे आपका runner अस्वीकार करे।

दूसरी जाँच जो 9 चाहती है

वही सार्वजनिक class SumCheck और वही helper Sum रखें। test body बदलकर दूसरे योग की जाँच करें:
@Test
void addsFourAndFive() {
assertEquals(9, Sum.add(4, 5));
}
4 + 5 का मान 9 है। अपेक्षित 9 है। वास्तविक Sum.add(4, 5) है। मान मिलते हैं, इसलिए यह जाँच भी पास होती है। इस पृष्ठ पर प्रत्येक शिक्षण आकार के लिए एक स्पष्ट जाँच रखें ताकि अपेक्षित संख्या नामने योग्य रहे।

SumCheck assertEquals wants 9

java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class Sum {
    static int add(int left, int right) {
        return left + right;
    }
}

public class SumCheck {
    @Test
    void addsFourAndFive() {
        assertEquals(9, Sum.add(4, 5));
    }
}

जाँच को एक बार चलाकर देखें। Sum.add(4, 5) मान 9 लौटाता है। assertEquals(9, ...) अपेक्षित और वास्तविक की तुलना करता है। मान मिलते हैं। जाँच पास होती है। दोनों डेमो को दो शिक्षण आकार मानकर रखें। पहले 5 चाहने वाली जाँच साबित करें। फिर 9 चाहने वाली। दोनों आकार JUnit import, helper Sum, और @Test साझा करते हैं।
यदि पहली डेमो Sum.add(2, 3) की 9 से तुलना करती, जाँच असफल होती क्योंकि 5, 9 नहीं है। वह असफल प्रोग्राम पहली शिक्षण फ़ाइल नहीं है। पहली शिक्षण फ़ाइल 5 चाहती है।

JUnit न Records है और न JAR

Records ने संकुचित घटक रखे जिन्हें आप accessor से प्रिंट करते थे। JUnit परिणाम को आपके अपेक्षित मान से जाँचता है। JAR बाद के वैकल्पिक पृष्ठ पर शिपिंग के लिए class फ़ाइलें पैक करेगा। आज तीनों काम एक शुरुआती फ़ाइल में न मिलाएँ।
यहाँ 5 अपेक्षित मान है assertEquals में। यह Tag record का t.n() नहीं और stream map परिणाम नहीं। जब बची Card फ़ाइल अभी भी oak प्रिंट करे, उसे इतिहास मानकर SumCheck की assertion पंक्ति रखें।
@Test के बिना कई runner विधि को जाँच के रूप में नहीं चलाएँगे। assertEquals के बिना इस शिक्षण आकार में तुलना नहीं है। दोनों रखें। JAR कमांड उस पाठ तक इस पृष्ठ से दूर रखें।

Runner और classpath आदतें

JUnit प्रकार org.junit.jupiter.api पैकेज में रहते हैं। आपके editor या build टूल को वे jar compile और run classpath पर रखने चाहिए। शुरुआती अक्सर test class सही चिपकाते हैं और फिर भी «package does not exist» देखते हैं जब jar गायब हों — classpath ठीक करें, @Test की वर्तनी नहीं।
Sum को उसी फ़ाइल में package-private रखें ताकि एक ही सार्वजनिक class SumCheck रहे। assertEquals में अपेक्षित मान स्पष्ट literal रखें। विधि नाम पढ़ने योग्य रखें। साधारण System.out.println शिक्षण जाँचों से दूर रखें जब तक बाद में स्वयं डिबग न करें।
यदि org.junit पर compile असफल हो, import पंक्ति ठीक है और लाइब्रेरी classpath से गायब है। यदि runner कहे शून्य test मिले, गुम @Test या वह class नाम देखें जिसे आपने चुना नहीं।

JAR से पहले फ़ोल्डर जाँच

JUnit jar उपलब्ध होने पर सफल compile के बाद फ़ोल्डर सूचीबद्ध करें। आपको SumCheck.class और आमतौर पर source के बगल में Sum.class दिखना चाहिए। source संपादित करें, सहेजें, फिर compile करें, फिर उसी runner आदत से जाँच चलाएँ। पुरानी class बदले अपेक्षित मान छिपा सकती है यदि संपादन के बाद compile छोड़ दें।
यदि javac दोहरी सार्वजनिक class की शिकायत करे, केवल SumCheck सार्वजनिक रखें। यदि assertEquals(9, Sum.add(2, 3)) टाइप करने के बाद जाँच असफल हो, वह विसंगति वास्तविक है — जिस डेमो को रखना है उसके लिए मेल खाती जोड़ी बहाल करें।
Card का record Tag SumCheck में न चिपकाएँ। Pipe का stream().map assertEquals का विकल्प न बनाएँ। वैकल्पिक JUnit काम एक चिह्नित जाँच है जो अपेक्षित और वास्तविक की तुलना करती है।

वैकल्पिक JAR से पहले

आप सार्वजनिक class SumCheck, helper Sum.add, JUnit @Test और assertEquals import, Sum.add(2, 3) की 5 से जाँच, फिर Sum.add(4, 5) की 9 से जाँच रख सकते हैं। classpath पर JUnit के साथ compile करें और JUnit 5 runner से जाँच चलाएँ। अगला वैकल्पिक पृष्ठ JAR है।
स्पष्ट assertion जोड़ी के लिए SumCheck डेमो रखें। JUnit अभ्यास करते समय Records Card फ़ाइलें इस पृष्ठ से दूर रखें। JUnit अभ्यास करते समय Streams Pipe फ़ाइलें इस पृष्ठ से दूर रखें। उस पाठ तक JAR काम इस पृष्ठ से दूर रखें। ये आदतें आगे बढ़ने से पहले चेकपॉइंट हैं। जब पहली जाँच 5 चाहती है और पास होती है, या दूसरी 9 चाहती है और पास होती है, JUnit ने इस पाठ के लिए काम कर दिया और यदि वैकल्पिक रास्ता जारी रखें तो JAR के लिए तैयार हैं।
फ़ोल्डर में आखिरी बार: एक सार्वजनिक SumCheck, package-private Sum, @Test मौजूद, assertEquals(expected, actual) संरेखित, JUnit import मौजूद, Scanner प्रतीक्षा नहीं, stream pipeline आवश्यक नहीं। जो डेमो खुली रखी है उस पर एक बार और compile और जाँच चलाएँ। यदि अपेक्षित और वास्तविक अभी भी मिलते हैं, JUnit आकार मजबूत है और पाठ्यक्रम अगले पृष्ठ पर वैकल्पिक JAR पर जा सकता है। प्रत्येक पठन के लिए एक स्पष्ट assertion आदत रखें ताकि हर बार वही नक्शा सिखे।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
5
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी