我已经用Python编写了一个模块,该模块使用pd.read_sql
方法从数据库中读取几个表,对数据执行一些操作,然后使用pd.to_sql
方法将结果写回到同一数据库中。
现在,我需要为上述模块中涉及的操作编写单元测试。例如,其中一项测试将检查从数据库获得的数据框是否为空,另一项测试将检查数据类型是否正确等。对于此类测试,我如何创建反映这些错误的示例数据(例如为空)数据框,数据类型错误)?对于不从数据库读取/写入的其他模块,我创建了一个样本数据文件(以CSV格式),读取了数据,进行了必要的操作并测试了不同的功能。对于与数据库操作有关的模块,我如何(更重要的是在哪里)创建样本数据?
我希望制作一个本地数据文件(就像我测试其他模块那样),然后使用read_sql
方法读取,但这似乎是不可能的。可以使用postegresql等创建本地数据库,但是如果不要求客户端创建相同的本地数据库,则无法将此类测试部署到客户端。
我是在正确考虑问题还是遗漏了某些东西?
谢谢
(至少有三种方法可以解决您描述的挑战: