我正在尝试为我的一个模块编写单元测试用例,该模块使用 aiomysql 池与 MariaDB 交互。我正在尝试模拟单元测试的数据库调用。我正在使用 asynctest python 模块来模拟。
我试图模拟 aiomysql.pool 模块中的连接方法。结果是它为 Connection 返回了一个 NoneType 对象。
def test_new(self):
with asynctest.patch('pcli.appliances.xyzdb.aiomysql.pool.connect', autospec=True) as mock_connect:
reader = asynctest.MagicMock()
reader.at_eof.return_value = False
conn_obj = asynctest.MagicMock()
conn_obj._reader = reader
mock_connect.return_value = asynctest.MagicMock()
import pdb; pdb.set_trace()
apps = yield from get_all_appliances()
我希望连接对象是 MagicMock 的一个实例,可以通过添加必要的属性进行扩展。