Teardown-ul fixture-urilor

Introducere în testarea în Python

Alexander Levin

Data Scientist

Ce este un fixture teardown

  • Fixture Teardown - procesul de curățare („demontare") a resurselor alocate sau create în timpul configurării mediului de testare.

Reamintiți-vă analogia cu „picnicul":

  1. Invitați prietenii și pregătiți mâncarea
  2. Bucurați-vă!
  3. Curățați - acesta este teardown-ul
Introducere în testarea în Python

De ce să folosiți teardown

Este important să curățați mediul la finalul unui test. Neutilizarea teardown-ului poate genera probleme semnificative:

  • Memory leak-uri
  • Viteză redusă de execuție și probleme de performanță
  • Rezultate invalide ale testelor
  • Eșecuri și erori în pipeline
Introducere în testarea în Python

Când se utilizează

Când se utilizează:

  • Obiecte mari
  • Mai mult de un test
  • Utilizarea autouse

Când nu este necesar:

  • Un script simplu cu un singur test
Introducere în testarea în Python

Evaluare leneșă în Python

  • yield - cuvânt cheie Python care permite crearea de generatoare
# 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
Introducere în testarea în Python

Cum se utilizează

Cum se utilizează:

  • Înlocuiți return cu yield
  • Plasați codul de teardown după yield
  • Asigurați-vă că codul de setup se află înainte de yield
Introducere în testarea în Python

Exemplu de 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
Introducere în testarea în Python

Rezumat

  • Definiție: Fixture Teardown - procesul de eliberare a resurselor alocate în timpul setup-ului.
  • Utilizare:
    • Cuvântul cheie yield în loc de return
    • Codul de teardown după yield
  • Avantaje:
    • Previne eșecurile software
    • Previne scăderea performanței
  • Când se folosește: Întotdeauna, când există mai mult de un test!
Introducere în testarea în Python

Să exersăm!

Introducere în testarea în Python

Preparing Video For Download...