Fixtures Teardowns

Python में Testing का परिचय

Alexander Levin

Data Scientist

Fixture teardown क्या है

  • Fixture Teardown - टेस्टिंग एन्वायरनमेंट की सेटअप के दौरान अलॉट या क्रिएट हुए रिसोर्सेज को साफ करना ("tearing down").

"पिकनिक" वाली उपमा याद करें:

  1. दोस्तों को बुलाएँ और खाना तैयार करें
  2. मज़े करें!
  3. सफाई करें - यही teardown है
Python में Testing का परिचय

Teardowns क्यों इस्तेमाल करें

टेस्ट के अंत में एन्वायरनमेंट साफ करना ज़रूरी है। अगर teardown नहीं करेंगे, तो बड़े मुद्दे हो सकते हैं:

  • मेमोरी लीक
  • धीमा execution और परफॉर्मेंस समस्याएँ
  • गलत टेस्ट परिणाम
  • पाइपलाइन फेल्योर और एरर
Python में Testing का परिचय

कब इस्तेमाल करें

कब इस्तेमाल करें:

  • बड़े ऑब्जेक्ट्स
  • एक से ज़्यादा टेस्ट
  • autouse का उपयोग

कब ज़रूरी नहीं:

  • एक सिंपल स्क्रिप्ट में एक ही टेस्ट
Python में Testing का परिचय

Python में लेज़ी evaluation

  • yield - एक Python कीवर्ड है, जो जेनरेटर बनाने देता है
# Example of generator function
def lazy_increment(n):
    for i in range(n):
        yield i
f = lazy_increment(5)
next(f) # 0
next(f) # 1
next(f) # 2
Python में Testing का परिचय

कैसे इस्तेमाल करें

कैसे इस्तेमाल करें:

  • return की जगह yield रखें
  • yield के बाद teardown कोड रखें
  • सुनिश्चित करें कि setup कोड सिर्फ yield से पहले हो
Python में Testing का परिचय

Teardown उदाहरण

@pytest.fixture
def init_list():
    return []

@pytest.fixture(autouse=True)
def add_numbers_to_list(init_list):
    # Fixture Setup
    init_list.extend([i for i in range(10)])
    # Fixture output
    yield init_list
    # Teardown statement
    init_list.clear()

def test_9(init_list):
    assert 9 in init_list
Python में Testing का परिचय

सारांश

  • परिभाषा: Fixture Teardown - सेटअप के दौरान अलॉट हुए रिसोर्सेज की सफाई की प्रक्रिया।
  • उपयोग:
    • return के बजाय yield कीवर्ड
    • yield के बाद teardown कोड
  • फायदे:
    • सॉफ़्टवेयर फेल्योर रोकता है
    • परफॉर्मेंस गिरावट से बचाता है
  • कब उपयोग करें: जब एक से ज़्यादा टेस्ट हों, हमेशा!
Python में Testing का परिचय

अभ्यास करते हैं!

Python में Testing का परिचय

Preparing Video For Download...