我在项目中进行了以下设置: Django作为API服务器,Postgres作为数据库,Prestodb用于我的数据存储区查询。只有在使用原始查询通过prestodb存储和获取数据时,Postgres才会存储与Django相关的内容。
我的挑战是我想在单元测试中模拟 prestodb 及其所有方法的连接并声明我的API。目前,我能够模拟presto客户端的主要查询方法,该方法返回模拟数据,但是当连接不可用时测试失败。查询方法装饰器的模拟看起来像这样
@mock.patch.object(PrestoClient, 'get_select_query_data', mocked_presto_response)
如果我模拟连接类,那么所有其他方法(如cursor和execute)都将不起作用。模拟连接的参数应该是什么?还是有更好的模拟数据库的方法?