Unit-Tests mit pytest schreiben
In dieser Übung übst du, einen Unit-Test zu schreiben, um eine Datenpipeline zu validieren. Du verwendest assert
und andere Tools, um die Tests zu erstellen und festzustellen, ob die Datenpipeline so funktioniert, wie sie sollte.
Die Funktionen extract()
und transform()
wurden für dich bereitgestellt, ebenso wie pandas
, das als pd
importiert wurde. Du wirst die Funktion transform()
testen, die unten abgebildet ist.
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
Diese Übung ist Teil des Kurses
ETL und ELT in Python
Anleitung zur Übung
- Importiere die Bibliothek
pytest
. - Bestätige, dass der in den
clean_tax_data
Variablen gespeicherte Wert eine Instanz vonpd.DataFrame
ist. - Überprüfe, ob die Anzahl der Spalten im DataFrame
clean_tax_data
größer ist als die Anzahl der Spalten im DataFrameraw_tax_data
.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)