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
Instrukcje do ćwiczenia
- Zaimportuj bibliotekę
pytest. - Sprawdź za pomocą
assert, czy wartość przechowywana w zmiennejclean_tax_datajest instancjąpd.DataFrame. - Zweryfikuj, czy liczba kolumn w ramce danych
clean_tax_datajest większa niż liczba kolumn w ramce danychraw_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)