Unit-Tests mit pytest schreiben
In dieser Übung schreibst du einen Unit-Test, um eine Datenpipeline zu validieren. Du verwendest assert und weitere Tools, um die Tests zu erstellen und festzustellen, ob die Datenpipeline wie vorgesehen funktioniert.
Die Funktionen extract() und transform() stehen dir zur Verfügung, ebenso pandas, das als pd importiert wurde. Du testest die Funktion transform(), die unten gezeigt 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
<Kurs>ETL und ELT in Python</Kurs>Übungsanweisungen
- Importiere die Bibliothek
pytest. - Stelle mit
assertsicher, dass der in der Variablenclean_tax_datagespeicherte Wert eine Instanz vonpd.DataFrameist. - Validiere, dass die Anzahl der Spalten im DataFrame
clean_tax_datagrößer ist als die Anzahl der Spalten im DataFrameraw_tax_data.
Interaktive praktische Ü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)