2014-05-15 13 views
36

अजगर unittest ढांचे में setUp() और setUpClass() के बीच क्या अंतर है? एक विधि में एक विधि में सेटअप क्यों संभाला जाएगा?पायथन में सेटअप() और setUpClass() के बीच क्या अंतर है?

मैं समझने के लिए सेटअप के भाग के रूप में अच्छी तरह से tearDown() और tearDownClass() साथ के रूप में setUp() और setUpClass() कार्यों में किया जाता है, चाहते हैं।

उत्तर

61

अंतर में प्रकट होता है कि आपने अपनी कक्षा में एक से अधिक परीक्षा पद्धति है जब। setUpClass और tearDownClass पूरे वर्ग के लिए एक बार चलाए जाते हैं; setUp और tearDown प्रत्येक परीक्षण विधि से पहले और बाद में चलाए जाते हैं।

उदाहरण के लिए:

class Example(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 
     print("setUpClass") 

    def setUp(self): 
     print("setUp") 

    def test1(self): 
     print("test1") 

    def test2(self): 
     print("test2") 

    def tearDown(self): 
     print("tearDown") 

    @classmethod 
    def tearDownClass(cls): 
     print("tearDownClass") 

आप इस परीक्षण चलाते हैं, यह प्रिंट:

setUpClass 
setUp 
test1 
tearDown 
.setUp 
test2 
tearDown 
.tearDownClass 

(। डॉट्स (.) unittest के डिफ़ॉल्ट उत्पादन जब एक परीक्षण में सफ़ल रहे हैं) को ध्यान से देखें कि setUp और tearDowntest1औरtest2, और setUpClass औरके पहले और बाद में दिखाई देते हैंपूरे टेस्ट केस की शुरुआत और अंत में केवल एक बार दिखाई देता है।

+0

आदेश में इस होना नहीं करना चाहिए? : setUpClass सेटअप test1 टियरडाउन .setUp test2 .tearDown tearDownClass –

+0

कि क्या मैं पहले से ही है @JaiSharma? –

+0

नोटिस "।" आंसू के सामने और "।" की अनुपस्थिति tearDownClass के सामने –

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