हम एक यूनिट टेस्ट लिखते हैं जो केवल तभी फेल होता है जब फंक्शन अपेक्षित एक्सेप्शन नहीं फेंकता।
हम यह भी टेस्ट करते हैं कि क्या पायथन फंक्शन एक्सेप्शन फेंकता है।
उदाहरण के लिए, पायथन की टाइप-सेफ्टी को टेस्ट करने के लिए पायथन शेल में पेस्ट किए गए नमूना कोड को देखें:
उदाहरण
import unittest
class MyTestCase(unittest.TestCase):
def test_1_cannot_add_int_and_str(self):
with self.assertRaises(TypeError):
1 + '1'
def test_2_cannot_add_int_and_str(self):
import operator
self.assertRaises(TypeError, operator.add, 1, '1')
unittest.main(exit=False)
टेस्ट चलाना
आउटपुट
और टर्मिनल निम्न आउटपुट देता है:
.. ---------------------------------------------------------------------- Ran 2 tests in 0.001s OK
टेस्ट वन assertRaises को कॉन्टेक्स्ट मैनेजर के रूप में उपयोग करता है, जो सुनिश्चित करता है कि एरर ठीक से पकड़ा गया और साफ किया गया, जबकि रिकॉर्ड किया गया।
हम इसे कॉन्टेक्स्ट मैनेजर के बिना भी लिख सकते हैं, टेस्ट टू देखें। पहला आर्गुमेंट वह एरर टाइप होगा जिसे आप उठने की उम्मीद करते हैं, दूसरा आर्गुमेंट वह फंक्शन जिसे आप टेस्ट कर रहे हैं, और शेष आर्ग्स और कीवर्ड आर्ग्स उस फंक्शन को पास किए जाएंगे।
कॉन्टेक्स्ट मैनेजर का उपयोग करना कहीं अधिक सरल और पठनीय है।
हम देखते हैं कि जैसा हम उम्मीद करते हैं, 1 और '1' को जोड़ने का प्रयास TypeError में परिणाम देता है।