Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में unittest का उपयोग करके यूनिट टेस्टिंग


इस ट्यूटोरियल में, हम बिल्ट-इन मॉड्यूल unittest का उपयोग करके यूनिट टेस्टिंग के बारे में जानेंगे। टेस्टिंग सॉफ्टवेयर डेवलपमेंट में एक प्रमुख भूमिका निभाती है। आप प्रोडक्शन में जाने से पहले ही मुद्दों को जान लेंगे।

हम पायथन में टेस्टिंग की मूल बातें बिल्ट-इन मॉड्यूल unittest का उपयोग करके सीखेंगे। आइए ट्यूटोरियल में कूदें।

यूनिट टेस्टिंग क्या है?

यदि आप लॉगिन सिस्टम को एक उदाहरण के रूप में लेते हैं। लॉगिन फॉर्म में प्रत्येक फील्ड एक यूनिट/कंपोनेंट है। और उन यूनिट्स/कंपोनेंट्स की कार्यक्षमता का परीक्षण यूनिट टेस्टिंग के रूप में जाना जाता है।

उदाहरण

आइए unittest फ्रेमवर्क की मूल संरचना देखें।

# unittest मॉड्यूल इम्पोर्ट करना
import unittest

# unittest उन सभी मेथड्स का टेस्ट करेगा जिनका नाम 'test' से शुरू होता है
class SampleTest(unittest.TestCase):
    # True या False लौटाता है
    def test(self):
        self.assertTrue(True)

# टेस्ट चलाना
unittest.main()

आउटपुट

यदि आप उपरोक्त प्रोग्राम चलाते हैं, तो आपको निम्न परिणाम मिलेंगे।

----------------------------------------------------------------------
Ran 1 test in 0.001s
OK

स्ट्रिंग मेथड्स का टेस्टिंग

अब, हम नमूना टेस्ट केस के साथ विभिन्न स्ट्रिंग मेथड्स का परीक्षण करने जा रहे हैं। याद रखें कि मेथड का नाम test से शुरू होना चाहिए।

आइए प्रत्येक मेथड के बारे में संक्षिप्त परिचय देखें जिसे हम लिखने जा रहे हैं।

  • test_string_equality

    • यह मेथड unittest.TestCase के assertEqual मेथड का उपयोग करके दो स्ट्रिंग्स समान हैं या नहीं, इसका परीक्षण करता है।

  • test_string_case

    • यह मेथड unittest.TestCase के assertEqual मेथड का उपयोग करके दो स्ट्रिंग केस समान हैं या नहीं, इसका परीक्षण करता है।

  • test_is_string_upper

    • यह मेथड unittest.TestCase के assertTrue और assertFalse मेथड्स का उपयोग करके स्ट्रिंग अपरकेस में है या नहीं, इसका परीक्षण करता है।

उदाहरण

# unittest मॉड्यूल इम्पोर्ट करना
import unittest

class TestingStringMethods(unittest.TestCase):
    # स्ट्रिंग समानता
    def test_string_equality(self):
        # यदि दोनों आर्ग्यूमेंट्स समान हैं तो यह सफलता है
        self.assertEqual('ttp' * 5, 'ttpttpttpttpttp')
    
    # दो स्ट्रिंग्स की तुलना
    def test_string_case(self):
        # यदि दोनों आर्ग्यूमेंट्स समान हैं तो यह सफलता है
        self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT')
    
    # जांचें कि स्ट्रिंग अपरकेस है या नहीं
    def test_is_string_upper(self):
        # यह जांचने के लिए उपयोग किया जाता है कि स्टेटमेंट True है या False
        # **assertTrue** के अंदर एक्सप्रेशन का परिणाम टेस्ट केस पास करने के लिए True होना चाहिए
        # **assertFalse** के अंदर एक्सप्रेशन का परिणाम टेस्ट केस पास करने के लिए False होना चाहिए
        self.assertTrue('TUTORIALSPOINT'.isupper())
        self.assertFalse('TUTORIALSpoint'.isupper())

# टेस्ट्स चलाना
unittest.main()

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा यदि सभी टेस्ट केस पास होते हैं।

...
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK

उदाहरण

फेल हुए टेस्ट केस का आउटपुट देखने के लिए निम्न प्रोग्राम चलाएं।

# unittest मॉड्यूल इम्पोर्ट करना
import unittest

class TestingStringMethods(unittest.TestCase):
    # स्ट्रिंग समानता
    def test_string_equality(self):
        # यदि दोनों आर्ग्यूमेंट्स समान हैं तो यह सफलता है
        self.assertEqual('ttp' * 5, 'ttpttpttpttpttp')
    
    # दो स्ट्रिंग्स की तुलना
    def test_string_case(self):
        # यदि दोनों आर्ग्यूमेंट्स समान हैं तो यह सफलता है
        self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT')
    
    # जांचें कि स्ट्रिंग अपरकेस है या नहीं
    def test_is_string_upper(self):
        # यह जांचने के लिए उपयोग किया जाता है कि स्टेटमेंट True है या False
        # **assertTrue** के अंदर एक्सप्रेशन का परिणाम टेस्ट केस पास करने के लिए True होना चाहिए
        # **assertFalse** के अंदर एक्सप्रेशन का परिणाम टेस्ट केस पास करने के लिए False होना चाहिए
        self.assertTrue('TUTORIALSPOINt'.isupper())
        self.assertFalse('TUTORIALSpoint'.isupper())

# टेस्ट्स चलाना
unittest.main()

आउटपुट

यदि आप उपरोक्त प्रोग्राम चलाते हैं, तो आपको निम्न परिणाम मिलेगा।

======================================================================
FAIL: test_is_string_upper (__main__.TestingStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "p:/Python Work/Stopwatch/practice.py", line 21, in test_is_string_upper
    self.assertTrue('TUTORIALSPOINt'.isupper())
AssertionError: False is not true
----------------------------------------------------------------------
Ran 3 tests in 0.016s
FAILED (failures=1)

यदि सभी टेस्ट केस में से एक भी टेस्ट केस फेल होता है तो हमें फेल मैसेज मिलेगा।

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई संदेह हैं, तो उन्हें कमेंट सेक्शन में बताएं।


  1. पायथन में Unittest का उपयोग करके यूनिट टेस्टिंग पायथन में Unittest का उपयोग करके यूनिट टेस्टिंग

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में उपलब्ध यूनिट टेस्ट मॉड्यूल की मदद से सॉफ्टवेयर टेस्टिंग के मूल सिद्धांतों के बारे में जानेंगे। यह टेस्ट के लिए सेटअप और एग्जिट कोड के ऑटोमेशन, शेयरिंग और हर फ्रेमवर्क के लिए स्वतंत्र टेस्ट की अनुमति देता है।यूनिट टेस्ट में, हम ऑब्जेक्ट-ओरिएंटेड अव

  1. पायथन का उपयोग करके व्हाट्सएप ऑटोमेशन पायथन का उपयोग करके व्हाट्सएप ऑटोमेशन

    इस खंड में हम एक व्हाट्सएप चैटबॉट बनाने जा रहे हैं, लेकिन ट्विटर या फेसबुक के कुछ अन्य चैटबॉट्स के विपरीत, व्हाट्सएप चैटबॉट्स व्हाट्सएप की नीतियों के कारण सीधे प्लेटफॉर्म पर नहीं चलते।लेकिन इसे पूरा करने का एक तरीका है, सेलेनियम का उपयोग करके, पायथन में एक बहुत स्मार्ट पैकेज जिसके साथ डेवलपर्स ब्राउ

  1. पायथन में CX_Freeze का उपयोग पायथन में CX_Freeze का उपयोग

    कभी-कभी हम कुछ अलग बनाना चाहते हैं जो बहुत रोमांचक हो, और मानव स्वभाव के अनुसार, हम हमेशा इसे साझा करना पसंद करते हैं। पायथन भी उन इच्छाओं को पूरा करता है। पायथन का उपयोग करके, अगर हम अपने पायथन प्रोग्राम को अपने दोस्तों के साथ साझा करना चाहते हैं तो हम ऐसा कर सकते हैं, बस उनके मशीन पर वही पायथन सं