इस ट्यूटोरियल में, हम बिल्ट-इन मॉड्यूल 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)यदि सभी टेस्ट केस में से एक भी टेस्ट केस फेल होता है तो हमें फेल मैसेज मिलेगा।
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई संदेह हैं, तो उन्हें कमेंट सेक्शन में बताएं।