मैं इस परीक्षण को चलाने के लिए कोशिश कर रहा हूँ: self.assertRaises(AttributeError, branch[0].childrennodes)
, और branch[0
] एक विशेषता childrennodes
नहीं है, इसलिए यह एक AttributeError
, जो assertRaises
पकड़ने चाहिए फेंक दिया जाना चाहिए, लेकिन जब मैं परीक्षण चलाने, परीक्षण विफल रहता है, क्योंकि यह है AttributeError
फेंकना।क्यों जोर नहीं दिया गया है Python unittest का उपयोग कर मेरी विशेषता त्रुटि को पकड़ना?
Traceback (most recent call last):
File "/home/tttt/../tttt/tests.py", line 504, in test_get_categories_branch
self.assertRaises(AttributeError, branch[0].children_nodes)
AttributeError: 'Category' object has no attribute 'children_nodes'
कोई विचार?
सही समाधान यही है, लेकिन अपवाद तब होता है जब पायथन 'self.assertRaises' के लिए तर्क एकत्र करता है। इसे फ़ंक्शन को कॉल करने से पहले 'शाखा [0] .childrennodes' का मूल्यांकन करना होगा, जो अपेक्षा के अनुसार एक अपवाद उठाता है। –
unittest में भी इसी तरह की विशेषताएं हैं। मैंने उन्हें अपने उत्तर में वर्णित किया है। हग्स! –