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
Övningsinstruktioner
- Importera biblioteket
pytest. - Kontrollera med
assertatt värdet i variabelnclean_tax_dataär en instans avpd.DataFrame. - Validera att antalet kolumner i DataFrame:n
clean_tax_dataär större än antalet kolumner i DataFrame:nraw_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)