Bắt đầu ngayBắt đầu miễn phí

Viết unit test với pytest

Trong bài tập này, bạn sẽ thực hành viết unit test để kiểm tra một data pipeline. Bạn sẽ dùng assert và các công cụ khác để xây dựng bài kiểm thử, nhằm xác định liệu data pipeline có hoạt động đúng như mong đợi hay không.

Các hàm extract() và transform() đã được cung cấp sẵn cho bạn, cùng với pandas đã được import là pd. Bạn sẽ kiểm thử hàm transform(), được hiển thị bên dưới.

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

Bài tập này là một phần của khóa học

ETL và ELT với Python

Xem khóa học

Hướng dẫn bài tập

  • Import thư viện pytest.
  • Dùng assert để kiểm tra rằng giá trị lưu trong biến clean_tax_data là một thể hiện của pd.DataFrame.
  • Kiểm tra rằng số lượng cột trong DataFrame clean_tax_data lớn hơn số cột trong DataFrame raw_tax_data.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã