2011-02-03 13 views
26

मैं अजगर 2.7 unittest setUpClass() विधि के कुछ बुनियादी उदाहरणों की तलाश में हूं। मैं अपने मॉड्यूल में कुछ वर्ग तरीकों का परीक्षण करने कोशिश कर रहा हूँ, और मैं जहाँ तक मिल गया है:मैं unittest setUpClass विधि() का उपयोग कैसे करूं?

import unittest 
import sys 

import mymodule 

class BookTests(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 
     cls._mine = mymodule.myclass('test_file.txt', 'baz') 

लेकिन मैं पता नहीं कैसे यहां से आगे बढ़ने के लिए वस्तु मैं अभी बनाया का उपयोग परीक्षण लिखने के लिए की है।

उत्तर

26

अपने परीक्षण विधियों में अब आप वैश्विक स्तर पर _mine स्वयं के माध्यम से योगदान कर सकते हैं। तो अगर आप कुछ इस तरह कर सकते हैं:

def test_something(self): 
    self.assertEqual(self._mine.attribute, 'myAttribute') 
+0

यह वस्तु को सीधे बनाने से अलग कैसे होगा। यानी: def setUp (self): cls_mine = baz()। – Pradyot

+0

@ प्रोडियोट माइन कक्षा पर है और आपका उदाहरण उदाहरण पर होगा। मैं व्यक्तिगत रूप से सेटअप विधि में इसे सेट अप करता हूं, लेकिन यह वरीयता का मामला है। – sdolan

+12

@Pradyot 'setUp()' को प्रत्येक परीक्षण विधि से पहले बुलाया जाता है, जबकि 'SetUpClass() 'को सभी परीक्षणों से पहले एक बार बुलाया जाता है। कोई भी महंगा संचालन जो आपके कई परीक्षणों का लाभ उठा सकता है, को 'SetUpClass() 'में जाना चाहिए। – Dennis

5

आप Django 1.8+ का उपयोग कर रहे हैं, तो आप के बजाय setUpTestData विधि का उपयोग करना चाहिए।

फिर आप cls ऑब्जेक्ट पर कोई भी विशेषता सेट कर सकते हैं, और self ऑब्जेक्ट पर व्यक्तिगत परीक्षण विधियों के माध्यम से उन्हें एक्सेस कर सकते हैं।

अधिक जानकारी the Django docs में है।

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