Kom igångKom igång gratis

Skriva enhetstester med pytest

I den här övningen får du träna på att skriva ett enhetstest för att validera en datapipeline. Du använder assert och andra verktyg för att bygga testerna och avgöra om datapipelinen fungerar som den ska.

Funktionerna extract() och transform() finns redan tillgängliga, tillsammans med pandas, som har importerats som pd. Du ska testa funktionen transform(), som visas nedan.

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

Den här övningen är en del av kursen

ETL och ELT i Python

Visa kurs

Övningsinstruktioner

  • Importera biblioteket pytest.
  • Kontrollera med assert att värdet i variabeln clean_tax_data är en instans av pd.DataFrame.
  • Validera att antalet kolumner i DataFrame:n clean_tax_data är större än antalet kolumner i DataFrame:n raw_tax_data.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod