การเขียน unit test ด้วย pytest
ในแบบฝึกหัดนี้ จะได้ฝึกเขียน unit test เพื่อตรวจสอบความถูกต้องของ data pipeline โดยใช้ assert และเครื่องมืออื่น ๆ เพื่อสร้างการทดสอบและตรวจสอบว่า data pipeline ทำงานได้ตามที่คาดหวังหรือไม่
ฟังก์ชัน extract() และ transform() ถูกเตรียมไว้ให้แล้ว พร้อมกับ pandas ที่ import มาในชื่อ 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
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ETL และ ELT ด้วย Python
คำแนะนำการฝึกหัด
- Import ไลบรารี
pytest - ใช้ assert เพื่อตรวจสอบว่าค่าที่เก็บในตัวแปร
clean_tax_dataเป็น instance ของpd.DataFrame - ตรวจสอบว่าจำนวนคอลัมน์ใน DataFrame
clean_tax_dataมากกว่าจำนวนคอลัมน์ใน DataFrameraw_tax_data
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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)