UnitTest – Python का अंतर्निहित टेस्टिंग टूल

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

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

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

unittest के साथ टेस्टिंग का परिचय

टेस्टिंग सॉफ्टवेयर डेवलपमेंट प्रक्रिया का एक मूलभूत हिस्सा है, जो कोड की विश्वसनीयता और गुणवत्ता सुनिश्चित करता है। Python इकोसिस्टम में, unittest मॉड्यूल स्वचालित टेस्ट बनाने और चलाने के लिए एक मानक समाधान के रूप में काम करता है।

UnitTest Python की एक अंतर्निहित लाइब्रेरी है, जो xUnit आर्किटेक्चर पर आधारित है। यह डेवलपर्स को यूनिट टेस्ट बनाने, बिज़नेस लॉजिक की जांच करने और फंक्शन तथा क्लासेस के कामकाज को नियंत्रित करने के लिए टूल्स का एक पूरा सेट प्रदान करता है। इसका सबसे बड़ा फायदा यह है कि यह Python की स्टैंडर्ड लाइब्रेरी का हिस्सा है और इसे अलग से इंस्टॉल करने की जरूरत नहीं है।

unittest क्या है और इसकी आवश्यकता क्यों है

Unittest Python में टेस्ट लिखने और चलाने का एक फ्रेमवर्क है, जो test-driven development (TDD) के सिद्धांतों का पालन करता है। यह दोहराए जाने योग्य, अलग-थलग और स्वचालित टेस्ट बनाने में मदद करता है, जो निम्नलिखित में सहायक होते हैं:

  • डेवलपमेंट के शुरुआती चरणों में त्रुटियों का पता लगाना
  • रीफैक्टरिंग के दौरान कोड की स्थिरता सुनिश्चित करना
  • फंक्शन के अपेक्षित व्यवहार का दस्तावेजीकरण करना
  • सॉफ्टवेयर उत्पाद की गुणवत्ता में विश्वास बढ़ाना

unittest के साथ काम करने की मूल बातें

टेस्ट की बुनियादी संरचना

unittest के साथ शुरुआत करने के लिए, मॉड्यूल को इम्पोर्ट करें और एक टेस्ट क्लास बनाएं:

import unittest

class TestMath(unittest.TestCase):
    def test_add(self):
        self.assertEqual(2 + 3, 5)
        
    def test_multiply(self):
        self.assertEqual(4 * 5, 20)

if __name__ == '__main__':
    unittest.main()

संरचना के प्रमुख सिद्धांत

प्रत्येक टेस्ट क्लास को unittest.TestCase से इनहेरिट करना चाहिए। सभी टेस्ट मेथड्स test_ प्रीफिक्स से शुरू होते हैं, जिससे फ्रेमवर्क स्वचालित रूप से टेस्ट को खोज और निष्पादित कर सकता है। unittest.main() मेथड वर्तमान मॉड्यूल में सभी पाए गए टेस्ट को चलाता है।

टेस्ट का जीवनचक्र और फिक्स्चर

सेटअप और क्लीनअप मेथड्स

Unittest टेस्ट वातावरण तैयार करने और साफ करने के लिए विशेष मेथड्स प्रदान करता है:

class TestDatabase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        """क्लास के सभी टेस्ट से पहले एक बार चलता है"""
        cls.db_connection = create_test_database()
    
    @classmethod
    def tearDownClass(cls):
        """क्लास के सभी टेस्ट के बाद एक बार चलता है"""
        cls.db_connection.close()
    
    def setUp(self):
        """प्रत्येक टेस्ट से पहले चलता है"""
        self.test_data = ["item1", "item2", "item3"]
    
    def tearDown(self):
        """प्रत्येक टेस्ट के बाद चलता है"""
        self.test_data.clear()

फिक्स्चर के स्तर

Unittest में फिक्स्चर विभिन्न स्तरों पर काम करते हैं:

  • setUp() और tearDown() - प्रत्येक टेस्ट के लिए अलग-अलग
  • setUpClass() और tearDownClass() - पूरे टेस्ट क्लास के लिए
  • setUpModule() और tearDownModule() - पूरे मॉड्यूल के लिए

असर्शन मेथड्स (Assertions)

जांच के मुख्य तरीके

Unittest विभिन्न प्रकार की जांचों के लिए मेथड्स का एक समृद्ध सेट प्रदान करता है:

मेथड विवरण उपयोग का उदाहरण
assertEqual(a, b) a और b की समानता की जांच करता है self.assertEqual(2+2, 4)
assertNotEqual(a, b) a और b की असमानता की जांच करता है self.assertNotEqual(2+2, 5)
assertTrue(x) x के सत्य होने की जांच करता है self.assertTrue(5 > 3)
assertFalse(x) x के असत्य होने की जांच करता है self.assertFalse(5 < 3)

अनुशंसाएँ