การเขียน unit test ด้วย pytest
ในแบบฝึกหัดนี้ จะได้ฝึกเขียน unit test เพื่อตรวจสอบความถูกต้องของดาต้าไปป์ไลน์ โดยใช้ 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
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ETL and ELT ใน Python
คำแนะนำการฝึกหัด
- นำเข้าไลบรารี
pytest - ตรวจสอบด้วย assert ว่าค่าที่เก็บอยู่ในตัวแปร
clean_tax_dataเป็นอินสแตนซ์ของpd.DataFrame - ตรวจสอบว่าจำนวนคอลัมน์ใน DataFrame ชื่อ
clean_tax_dataมากกว่าจำนวนคอลัมน์ใน DataFrame ชื่อraw_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)