मैं यह स्थापित करने के लिए एक परीक्षण लिखना चाहता हूं कि किसी अपवाद को किसी परिस्थिति में नहीं उठाया गया है।
यदि एक अपवाद उठाया जाता है तो यह परीक्षण करना सरल है ...
sInvalidPath=AlwaysSuppliesAnInvalidPath()
self.assertRaises(PathIsNotAValidOne, MyObject, sInvalidPath)
... लेकिन आप इसके विपरीत कैसे कर सकते हैं ।
कुछ इस तरह से मैं जो मैं के बाद हूँ ...
sValidPath=AlwaysSuppliesAValidPath()
self.assertNotRaises(PathIsNotAValidOne, MyObject, sValidPath)
assertNotRaisesविधि को लागू कर सकते हैं जो अपने कोड / व्यवहार का 90% कोड के assertRaisesबारे में ~ 30-ईश लाइनों के साथ साझा करता है। देखें नीचे मेरा उत्तर जानकारी के लिए।
hypothesisयह सुनिश्चित करने के लिए कर सकता हूं कि वे सभी प्रकार के इनपुट के लिए एक ही आउटपुट का उत्पादन करते हैं, जबकि उन मामलों की अनदेखी करते हैं जहां मूल एक अपवाद उठाता है। assume(func(a))काम नहीं करता क्योंकि आउटपुट अस्पष्ट सत्य मान के साथ एक सरणी हो सकता है। इसलिए मैं सिर्फ एक फ़ंक्शन को कॉल करना चाहता हूं और प्राप्त करना चाहता हूं Trueयदि यह विफल नहीं होता है। assume(func(a) is not None)मुझे लगता है कि काम करता है