Zacznij terazZacznij za darmo

Pisanie testów jednostkowych za pomocą pytest

W tym ćwiczeniu napiszesz test jednostkowy, który sprawdzi poprawność działania potoku danych. Użyjesz assert oraz innych narzędzi, aby zbudować testy i ocenić, czy potok danych działa tak, jak powinien.

Funkcje extract() oraz transform() są już dla ciebie dostępne, podobnie jak biblioteka pandas, zaimportowana jako pd. Przetestujesz funkcję transform(), którą widzisz poniżej.

def transform(raw_data):
    raw_data["average_taxable_income"] = raw_data["total_taxable_income"] / raw_data["number_of_firms"]
    clean_data = raw_data.loc[raw_data["average_taxable_income"] > 100, :]
    clean_data.set_index("industry_name", inplace=True)
    return clean_data

To ćwiczenie jest częścią kursu

ETL i ELT w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj bibliotekę pytest.
  • Sprawdź za pomocą assert, czy wartość przechowywana w zmiennej clean_tax_data jest instancją pd.DataFrame.
  • Zweryfikuj, czy liczba kolumn w ramce danych clean_tax_data jest większa niż liczba kolumn w ramce danych raw_tax_data.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

import ____

def test_transformed_data():
    raw_tax_data = extract("raw_tax_data.csv")
    clean_tax_data = transform(raw_tax_data)
    
    # Assert that the transform function returns a pd.DataFrame
    assert ____(clean_tax_data, pd.DataFrame)
    
    # Assert that the clean_tax_data DataFrame has more columns than the raw_tax_data DataFrame
    ____ len(clean_tax_data.columns) ____ len(raw_tax_data.columns)
Edytuj i uruchom kod