Kotlin परीक्षण: शुरुआती कहाँ से शुरू करें — पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: Kotlin परीक्षण एक सुपरपावर क्यों है, न कि एक उबाऊ जिम्मेदारी

\n\n

कल्पना करें: आपने Kotlin में एक एप्लिकेशन लिखा है। यह काम कर रहा है। आप खुश हैं। लेकिन एक सप्ताह बीत जाता है, आप एक नई सुविधा जोड़ते हैं — और अचानक पुरानी सुविधा टूट जाती है। परिचित लगता है? यदि नहीं — तो आप या तो प्रतिभाशाली हैं, या आपने कभी बिना परीक्षण के कोड नहीं लिखा है। Kotlin परीक्षण केवल डेवलपर की चेकलिस्ट में एक टिक नहीं है। यह बग्स के खिलाफ आपकी व्यक्तिगत "ढाल" है, डिप्लॉयमेंट के बाद शांति से सोने का एक तरीका है, और एक उपकरण है जो कोड को साफ और समझने योग्य बनाता है।

\n\n

इस लेख में, मैं दिखाऊंगा कि एक शुरुआती डेवलपर Kotlin पर परीक्षण कहाँ से शुरू कर सकता है। हम वास्तविक उदाहरण, लोकप्रिय लाइब्रेरी और टिप्स देखेंगे जो आपको डीबगिंग के घंटे बचाएंगे। आप सीखेंगे कि यूनिट टेस्ट कैसे लिखें, डिपेंडेंसी को मॉक कैसे करें और कोरूटीन का परीक्षण कैसे करें। चलिए शुरू करते हैं!

\n\n

चरण 1: वातावरण सेटअप — पहले 5 मिनट

\n\n

पहला टेस्ट लिखने से पहले, डिपेंडेंसी जोड़नी होगी। यदि आप Gradle का उपयोग कर रहे हैं (और आप शायद कर रहे हैं), तो build.gradle.kts में निम्नलिखित पंक्तियाँ जोड़ें:

\n\n
// build.gradle.kts\ndependencies {\n    // JUnit 5 — यूनिट टेस्टिंग का आधार\n    testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")\n    \n    // MockK — Kotlin में मॉक के लिए सबसे अच्छी लाइब्रेरी\n    testImplementation("io.mockk:mockk:1.13.8")\n    \n    // AssertJ — सुंदर और पढ़ने योग्य assertions\n    testImplementation("org.assertj:assertj-core:3.24.2")\n    \n    // कोरूटीन के परीक्षण के लिए\n    testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")\n}\n\ntasks.test {\n    useJUnitPlatform()\n}
\n\n

हो गया! अब आपके पास टेस्ट लिखने के लिए सब कुछ है। ध्यान दें: हम JUnit 5 (4 नहीं) का उपयोग कर रहे हैं — यह आधुनिक मानक है जो Kotlin के साथ अच्छी तरह से काम करता है। MockK को संयोग से नहीं चुना गया: यह null-safety, extension-फंक्शन और Kotlin की अन्य विशेषताओं को समझता है, जिनसे Mockito अच्छी तरह से निपट नहीं पाता।

\n\n

चरण 2: Kotlin पर आपका पहला यूनिट टेस्ट

\n\n

चलिए एक सरल क्लास लिखते हैं और उसका परीक्षण करते हैं। मान लीजिए, हमारे पास एक डिस्काउंट कैलकुलेटर है:

\n\n
// DiscountCalculator.kt\nclass DiscountCalculator {\n    fun calculateDiscount(price: Double, discountPercent: Int): Double {\n        require(price >= 0) { "मूल्य नकारात्मक नहीं हो सकता" }\n        require(discountPercent in 0..100) { "छूट 0 से 100 के बीच होनी चाहिए" }\n        return price * (100 - discountPercent) / 100.0\n    }\n}
\n\n

अब एक टेस्ट लिखते हैं। src/test/kotlin फ़ोल्डर में DiscountCalculatorTest.kt फ़ाइल बनाएँ:

\n\n
import org.junit.jupiter.api.Test\nimport org.junit.jupiter.api.assertThrows\nimport org.assertj.core.api.Assertions.assertThat\n\nclass DiscountCalculatorTest {\n    \n    private val calculator = DiscountCalculator()\n    \n    @Test\n    fun `20% छूट सही ढंग से गणना करनी चाहिए`() {\n        val result = calculator.calculateDiscount(1000.0, 20)\n        assertThat(result).isEqualTo(800.0)\n    }\n    \n    @Test\n    fun `नकारात्मक मूल्य पर अपवाद फेंकना चाहिए`() {\n        assertThrows<IllegalArgumentException> {\n            calculator.calculateDiscount(-100.0, 10)\n        }\n    }\n    \n    @Test\n    fun `0% छूट पर पूर्ण मूल्य लौटाना चाहिए`() {\n        val result = calculator.calculateDiscount(500.0, 0)\n        assertThat(result).isEqualTo(500.0)\n    }\n}
\n\n

शैली पर ध्यान दें: हम हिंदी में टेस्ट नामों के लिए बैकटिक्स का उपयोग कर रहे हैं (Kotlin इसकी अनुमति देता है)। यह टेस्ट को गैर-तकनीकी सहकर्मी के लिए भी पढ़ने योग्य बनाता है। AssertJ एक fluent-इंटरफ़ेस प्रदान करता है: assertThat(result).isEqualTo(800.0) — एक अंग्रेजी वाक्य की तरह पढ़ा जाता है।

\n\n

चरण 3: MockK के साथ मॉक — जब हम डिपेंडेंसी का परीक्षण करते हैं

\n\n

वास्तविक एप्लिकेशन में, क्लास शायद ही कभी अकेले रहते हैं। वे डेटाबेस, API या अन्य सेवाओं से संपर्क करते हैं। बाहरी सिस्टम पर निर्भर न होने के लिए, हम मॉक का उपयोग करते हैं। मान लीजिए, हमारे पास एक सेवा है

ब्लॉग

पुस्तक अनुशंसाएँ