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ẽ luyện viết một unit test để kiểm định một data pipeline. Bạn sẽ dùng assert và các công cụ khác để xây dựng các bài kiểm thử, và xác định liệu data pipeline có hoạt động đúng như mong đợi hay không.

Các hàm extract()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.
  • Khẳng định rằng giá trị lưu trong biến clean_tax_data là một instance của pd.DataFrame.
  • Xác nhận rằng số lượng cột trong DataFrame clean_tax_data lớn hơn số lượng 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ã