为Python测试创建数据

问题描述 投票:0回答:1

我已经用Python编写了一个模块,该模块使用pd.read_sql方法从数据库中读取几个表,对数据执行一些操作,然后使用pd.to_sql方法将结果写回到同一数据库中。

现在,我需要为上述模块中涉及的操作编写单元测试。例如,其中一项测试将检查从数据库获得的数据框是否为空,另一项测试将检查数据类型是否正确等。对于此类测试,我如何创建反映这些错误的示例数据(例如为空)数据框,数据类型错误)?对于不从数据库读取/写入的其他模块,我创建了一个样本数据文件(以CSV格式),读取了数据,进行了必要的操作并测试了不同的功能。对于与数据库操作有关的模块,我如何(更重要的是在哪里)创建样本数据?

我希望制作一个本地数据文件(就像我测试其他模块那样),然后使用read_sql方法读取,但这似乎是不可能的。可以使用postegresql等创建本地数据库,但是如果不要求客户端创建相同的本地数据库,则无法将此类测试部署到客户端。

我是在正确考虑问题还是遗漏了某些东西?

谢谢

python pandas python-3.6
1个回答
0
投票
您正在以正确的方式考虑问题。单元测试不应依赖于数据库的存在,因为它会使数据库运行起来更慢,更难建立且更脆弱。

(至少有三种方法可以解决您描述的挑战:

© www.soinside.com 2019 - 2024. All rights reserved.