使用 pytest 编写单元测试
在本练习中,您将练习编写单元测试来验证数据管道。您将使用 assert 和其他工具来构建测试,并判断数据管道是否按预期运行。
函数 extract() 和 transform() 以及已导入为 pd 的 pandas 已为您准备好。您将测试下面展示的 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_dataDataFrame 的列数大于raw_tax_dataDataFrame 中存储的列数。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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)