使用 pytest 撰寫單元測試
在這個練習中,你會練習撰寫單元測試來驗證一個資料管線。你會使用 assert 與其他工具來建立測試,並判斷資料管線是否依預期運作。
extract() 與 transform() 這兩個函式已提供給你,pandas 也已匯入為 pd。你將測試 transform() 函式,程式如下所示。
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
本練習屬於課程
使用 Python 的 ETL 與 ELT
練習說明
- 匯入
pytest函式庫。 - 斷言變數
clean_tax_data中的值是pd.DataFrame的實例。 - 驗證
clean_tax_data這個 DataFrame 的欄數大於raw_tax_data這個 DataFrame 的欄數。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)