कोटलिन में परीक्षण: डेवलपर्स के लिए फ्रेमवर्क और उपकरण

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

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

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

कोटलिन में परीक्षण: विश्वसनीय कोड लिखने के लिए फ्रेमवर्क और उपकरण



कोटलिन एक आधुनिक भाषा है जिसका उपयोग Android ऐप्स, सर्वर-साइड समाधान (Ktor, Spring Boot) और मल्टीप्लेटफ़ॉर्म प्रोजेक्ट्स के विकास में सक्रिय रूप से किया जाता है। कोड की गुणवत्ता सीधे तौर पर परीक्षण कवरेज पर निर्भर करती है। इस लेख में, हम कोटलिन में परीक्षण के मुख्य उपकरणों पर चर्चा करेंगे: परीक्षण लिखने के लिए फ्रेमवर्क, मॉकिंग के लिए लाइब्रेरी और कोरूटीन की जाँच के लिए उपयोगिताएँ।



1. JUnit 5 — परीक्षण का आधार



JUnit 5 Java/Kotlin में यूनिट परीक्षण के लिए मानक फ्रेमवर्क है। यह एनोटेशन @Test, @BeforeEach, @AfterEach और एक्सटेंशन तंत्र (Extensions) प्रदान करता है। कोटलिन में, परीक्षण संक्षिप्त दिखते हैं:



import org.junit.jupiter.api.Testimport org.junit.jupiter.api.Assertions.*

class CalculatorTest { private val calculator = Calculator()

@Test fun `addition should work correctly`() { assertEquals(4, calculator.add(2, 2)) }

@Test fun `division by zero throws exception`() { assertThrows<ArithmeticException> { calculator.divide(10, 0) } }}


कोटलिन के साथ JUnit 5 के उपयोग की विशेषताएँ:

  • परीक्षणों के नाम बैकटिक्स में लिखे जा सकते हैं — इससे पठनीयता में सुधार होता है।
  • @Test और kotlinx-coroutines-test एक्सटेंशन के माध्यम से किसी भी कोरूटीन के साथ काम करता है।
  • पैरामीटरयुक्त परीक्षणों (@ParameterizedTest) का समर्थन करता है।


2. Kotest — शक्तिशाली Kotlin-first फ्रेमवर्क



Kotest (पूर्व में KotlinTest) एक पूर्ण फ्रेमवर्क है जिसे विशेष रूप से कोटलिन के लिए विकसित किया गया है। यह परीक्षण लिखने की कई शैलियाँ प्रदान करता है: String Spec, Fun Spec, Describe Spec और अन्य। व्यवहार-संचालित विकास (BDD) का उपयोग करते हुए उदाहरण:



import io.kotest.core.spec.style.StringSpecimport io.kotest.matchers.shouldBe

class UserServiceTest : StringSpec({ "user should be created with correct name" { val user = UserService().createUser("Alice") user.name shouldBe "Alice" user.isActive shouldBe true }})


Kotest के लाभ:

  • संग्रह, स्ट्रिंग, संख्याओं के लिए अंतर्निहित मैचर्स (जाँच)।
  • कोरूटीन, डेटा प्रदाताओं (@TestFactory) और टाइम-आउट का समर्थन।
  • projectConfig के माध्यम से लचीला परीक्षण कॉन्फ़िगरेशन।
  • Gradle और Maven के साथ एकीकरण।


3. MockK — कोटलिन के लिए मॉकिंग



MockK एक लाइब्रेरी है जो मॉक ऑब्जेक्ट बनाने के लिए है, जो कोटलिन की विशेषताओं को ध्यान में रखती है: suspend-फ़ंक्शन, extension-फ़ंक्शन, sealed-क्लास और object-सिंगलटन। उपयोग का उदाहरण:



import io.mockk.*import org.junit.jupiter.api.Test

class UserServiceTest { @Test fun `should call repository when saving user`() { val repo = mockk<UserRepository>() every { repo.save(any()) } returns Unit

val service = UserService(repo) service.saveUser("Bob")

verify { repo.save(any()) } }}


MockK की प्रमुख क्षमताएँ:

  • mockk() — मॉक बनाना, spyk() — वास्तविक ऑब्जेक्ट का आंशिक मॉक।
  • कोरूटीन के साथ काम करने के लिए coEvery और coVerify।
  • कॉल ऑर्डर की जाँच (verifyOrder), आर्गुमेंट कैप्चर (slot)।
  • एनोटेशन @MockK और @RelaxedMockK का समर्थन।


4. कोरूटीन का परीक्षण: kotlinx-coroutines-test



कोरूटीन पर एसिंक्रोनस कोड का परीक्षण करते समय समय को नियंत्रित करना महत्वपूर्ण है। लाइब्रेरी kotlinx-coroutines-test runTest और TestCoroutineDispatcher प्रदान करती है:



import ko                    

अनुशंसाएँ