2013-02-14 26 views
11

मैं बस सोच रहा था कि मैं किसी ऐसे फ़ंक्शन के परीक्षण के बारे में कैसे जाऊंगा जो कुछ भी वापस नहीं करता है।पाइथन में किसी भी प्रकार के लिए unittest?

class TestIsIn(unittest.TestCase): 

    def test_one(self): 
    ''' Test if one character was added to the list''' 
    self.assertEqual(self.is_in('a'), and this is where I am lost) 

मैं जोर देने के लिए क्या समारोह के बराबर है, के बाद से कोई पता नहीं है:

def is_in(char): 
    my_list = [] 
    my_list.append(char) 

और फिर अगर मैं इसे परीक्षण करने के लिए किए गए: उदाहरण के लिए, मैं इस समारोह है कहना वापसी मूल्य जो मैं इसकी तुलना कर सकता हूं।

संपादित करें: कार्य में जोर देगी?

उत्तर

4

यूनिट परीक्षण का बिंदु यह है कि फ़ंक्शन करता है। यदि यह एक मूल्य वापस नहीं कर रहा है, तो यह वास्तव में क्या कर रहा है? इस मामले में, यह, कुछ भी करने जा करने के लिए प्रकट नहीं होता है के बाद से my_list एक स्थानीय चर रहा है, लेकिन अगर आपके समारोह वास्तव में कुछ इस तरह देखा:

def is_in(char, my_list): 
    my_list.append(char) 

तो फिर तुम अगर char वास्तव में जोड़ा जाता है परीक्षण करना चाहते हैं सूचि। आपका परीक्षण होगा:

def test_one(self): 
    my_list = [] 
    is_in('a', my_list) 
    self.assertEqual(my_list, ['a']) 

के बाद से समारोह एक मूल्य वापस नहीं करता है, लेकिन इसके लिए कोई बिंदु परीक्षण है (जब तक आप यकीन है कि यह एक मूल्य वापस नहीं करता है बनाने की जरूरत है)।

20

सभी पायथन फ़ंक्शन कुछ लौटाते हैं। यदि आप वापसी मूल्य निर्दिष्ट नहीं करते हैं, तो None वापस कर दिया गया है। तो अगर अपने लक्ष्य को वास्तव में लगता है कि कुछ एक मूल्य वापस नहीं करता है बनाने के लिए है, तो आप सिर्फ यह कह सकते हैं

self.assertIsNone(self.is_in('a')) 

(हालांकि, इस एक समारोह के बीच एक स्पष्ट वापसी मान के बिना भेद नहीं कर सकते और एक जो return None करता है ।)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^